diff --git a/templates/common/baremetal/files/baremetal-NetworkManager-kni-conf.yaml b/templates/common/baremetal/files/baremetal-NetworkManager-kni-conf.yaml index 004c551320..07aca152a5 100644 --- a/templates/common/baremetal/files/baremetal-NetworkManager-kni-conf.yaml +++ b/templates/common/baremetal/files/baremetal-NetworkManager-kni-conf.yaml @@ -5,3 +5,4 @@ contents: inline: | [main] dhcp=dhclient + rc-manager=unmanaged diff --git a/templates/master/00-master/baremetal/files/NetworkManager-resolv-prepender.yaml b/templates/master/00-master/baremetal/files/NetworkManager-resolv-prepender.yaml new file mode 100644 index 0000000000..2b0cb3e1ff --- /dev/null +++ b/templates/master/00-master/baremetal/files/NetworkManager-resolv-prepender.yaml @@ -0,0 +1,24 @@ +filesystem: "root" +mode: 0755 +path: "/etc/NetworkManager/dispatcher.d/30-resolv-prepender" +contents: + inline: | + #!/bin/bash + IFACE=$1 + STATUS=$2 + case "$STATUS" in + up|down|dhcp4-change|dhcp6-change) + logger -s "NM resolv-prepender triggered by ${1} ${2}." + NAMESERVER_IP="{{.Infra.Status.PlatformStatus.BareMetal.NodeDNSIP}}" + set +e + if [[ -n "$NAMESERVER_IP" ]]; then + logger -s "NM resolv-prepender: Prepending 'nameserver $NAMESERVER_IP' to /etc/resolv.conf (other nameservers from /var/run/NetworkManager/resolv.conf)" + sed "/^search .*$/a nameserver $NAMESERVER_IP" /var/run/NetworkManager/resolv.conf > /etc/resolv.conf + else + logger -s "NM resolv-prepender: Couldn't find a Virtual IP, just updating resolv.conf" + cp /var/run/NetworkManager/resolv.conf /etc/resolv.conf + fi + ;; + *) + ;; + esac diff --git a/templates/master/00-master/baremetal/files/dhcp-dhclient-conf.yaml b/templates/master/00-master/baremetal/files/dhcp-dhclient-conf.yaml index d4d1100398..0a3d18bc86 100644 --- a/templates/master/00-master/baremetal/files/dhcp-dhclient-conf.yaml +++ b/templates/master/00-master/baremetal/files/dhcp-dhclient-conf.yaml @@ -4,4 +4,3 @@ path: "/etc/dhcp/dhclient.conf" contents: inline: | supersede domain-search "{{ .EtcdDiscoveryDomain }}"; - prepend domain-name-servers {{ .Infra.Status.PlatformStatus.BareMetal.NodeDNSIP }}; diff --git a/templates/worker/00-worker/baremetal/files/NetworkManager-non-virtual-ip-prepender.yaml b/templates/worker/00-worker/baremetal/files/NetworkManager-non-virtual-ip-prepender.yaml deleted file mode 100644 index 98481685f7..0000000000 --- a/templates/worker/00-worker/baremetal/files/NetworkManager-non-virtual-ip-prepender.yaml +++ /dev/null @@ -1,41 +0,0 @@ -filesystem: "root" -mode: 0755 -path: "/etc/NetworkManager/dispatcher.d/pre-up.d/non-virtual-ip-prepender" -contents: - inline: | - #!/bin/bash - IFACE=$1 - STATUS=$2 - case "$STATUS" in - pre-up) - logger -s "NM non-virtual-ip-prepender triggered by pre-upping ${1}." - NON_VIRTUAL_IP=$(/usr/local/bin/non_virtual_ip \ - "{{.Infra.Status.PlatformStatus.BareMetal.APIServerInternalIP}}" \ - "{{.Infra.Status.PlatformStatus.BareMetal.NodeDNSIP}}" \ - "{{.Infra.Status.PlatformStatus.BareMetal.IngressIP}}") - set +e - if [[ -n $NON_VIRTUAL_IP ]]; then - logger -s "NM non-virtual-ip-prepender: Checking if worker non virtual IP is the first entry in resolv.conf" - if grep nameserver /etc/resolv.conf | head -n 1 | grep -q "$NON_VIRTUAL_IP" ; then - logger -s "NM non-virtual-ip-prepender: worker node non virtual IP already is the first entry in resolv.conf" - exit 0 - else - logger -s "NM non-virtual-ip-prepender: Setting dhclient to prepend non virtual IP in resolv.conf" - sed "s/{{`{{ .NonVirtualIP }}`}}/$NON_VIRTUAL_IP/" /etc/dhcp/dhclient.conf.template > /etc/dhcp/dhclient.conf - logger -s "NM non-virtual-ip-prepender: Looking for 'search' in /etc/resolv.conf to place 'nameserver $NON_VIRTUAL_IP'" - sed -i "/^search .*$/a nameserver $NON_VIRTUAL_IP" /etc/resolv.conf - fi - fi - ;; - down) - logger -s "NM non-virtual-ip-prepender triggered by downing $IFACE" - ;; - up) - logger -s "NM non-virtual-ip-prepender triggered by upping $IFACE" - ;; - post-down) - logger -s "NM non-virtual-ip-prepender triggered by post-downing $IFACE" - ;; - *) - ;; - esac \ No newline at end of file diff --git a/templates/worker/00-worker/baremetal/files/NetworkManager-resolv-prepender.yaml b/templates/worker/00-worker/baremetal/files/NetworkManager-resolv-prepender.yaml new file mode 100644 index 0000000000..22dd40e60d --- /dev/null +++ b/templates/worker/00-worker/baremetal/files/NetworkManager-resolv-prepender.yaml @@ -0,0 +1,27 @@ +filesystem: "root" +mode: 0755 +path: "/etc/NetworkManager/dispatcher.d/30-resolv-prepender" +contents: + inline: | + #!/bin/bash + IFACE=$1 + STATUS=$2 + case "$STATUS" in + up|down|dhcp4-change|dhcp6-change) + logger -s "NM resolv-prepender triggered by ${1} ${2}." + NAMESERVER_IP=$(/usr/local/bin/non_virtual_ip \ + "{{.Infra.Status.PlatformStatus.BareMetal.APIServerInternalIP}}" \ + "{{.Infra.Status.PlatformStatus.BareMetal.NodeDNSIP}}" \ + "{{.Infra.Status.PlatformStatus.BareMetal.IngressIP}}") + set +e + if [[ -n "$NAMESERVER_IP" ]]; then + logger -s "NM resolv-prepender: Prepending 'nameserver $NAMESERVER_IP' to /etc/resolv.conf (other nameservers from /var/run/NetworkManager/resolv.conf)" + sed "/^search .*$/a nameserver $NAMESERVER_IP" /var/run/NetworkManager/resolv.conf > /etc/resolv.conf + else + logger -s "Couldn't find a non-virtual IP, just updating resolv.conf" + cp /var/run/NetworkManager/resolv.conf /etc/resolv.conf + fi + ;; + *) + ;; + esac diff --git a/templates/worker/00-worker/baremetal/files/dhcp-dhclient-conf.yaml b/templates/worker/00-worker/baremetal/files/dhcp-dhclient-conf.yaml index ee141be526..167e787dac 100644 --- a/templates/worker/00-worker/baremetal/files/dhcp-dhclient-conf.yaml +++ b/templates/worker/00-worker/baremetal/files/dhcp-dhclient-conf.yaml @@ -4,4 +4,3 @@ path: "/etc/dhcp/dhclient.conf.template" contents: inline: | supersede domain-search "{{ .EtcdDiscoveryDomain }}"; - prepend domain-name-servers {{`{{ .NonVirtualIP }}`}};