Skip to content

Commit 7d80668

Browse files
authored
Debian-12 with nvme_core.io_timeout=300 instead of infinity (#190)
1 parent cb7f36f commit 7d80668

18 files changed

Lines changed: 90 additions & 72 deletions

.github/workflows/pr.yaml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,16 @@ jobs:
6060
--no-lint \
6161
--no-push
6262
63+
# TODO enable debian build again, actually droptailer and firewall-controller did not get enabled
64+
# and then goss tests fail
6365
- name: Build docker image for firewalls and export tarball
6466
run: |
6567
DOCKER_MAKE_REGISTRY_LOGIN_USER="metalstack+ci" \
6668
DOCKER_MAKE_REGISTRY_LOGIN_PASSWORD="${{ secrets.QUAY_IO_TOKEN }}" \
6769
TMPDIR=/var/tmp \
6870
docker-make \
6971
--work-dir firewall \
70-
--build-only ${{ matrix.os }} \
72+
--build-only ubuntu \
7173
--no-cache \
7274
--no-pull \
7375
--summary \

Makefile

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ LINKMODE := -extldflags=-static \
1111
-X 'github.com/metal-stack/v.GitSHA1=$(SHA)' \
1212
-X 'github.com/metal-stack/v.BuildDate=$(BUILDDATE)'
1313

14+
15+
all: clean binary
16+
17+
.PHONY: clean
18+
clean:
19+
rm -f debian/context/install-go
20+
rm -f centos/context/install-go
21+
1422
.PHONY: binary
1523
binary: test
1624
GGO_ENABLED=0 \
@@ -26,5 +34,5 @@ binary: test
2634

2735
.PHONY: test
2836
test:
29-
GO_ENV=testing go test -cover ./...
37+
GO_ENV=testing go test -race -cover ./...
3038

centos/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
ARG BASE_OS_VERSION
22

3-
FROM golang:1.19-buster as ignition-builder
3+
FROM golang:1.20-bullseye as ignition-builder
44
ARG IGNITION_BRANCH
55
WORKDIR /work
66
RUN set -ex \

cmd/install.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ func (i *installer) writeResolvConf() error {
145145
// FIXME enable systemd-resolved based approach again once we figured out why it does not work on the firewall
146146
// most probably because the resolved must be running in the internet facing vrf.
147147
// ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
148-
// in ignite this file is a symlinkg to /proc/net/pnp, to pass integration test, remove this first
148+
// in ignite this file is a symlink to /proc/net/pnp, to pass integration test, remove this first
149149
err := i.fs.Remove("/etc/resolv.conf")
150150
if err != nil {
151151
i.log.Infow("no /etc/resolv.conf present")
@@ -170,7 +170,7 @@ func (i *installer) buildCMDLine() string {
170170
"init=/sbin/init",
171171
"net.ifnames=0",
172172
"biosdevname=0",
173-
"nvme_core.io_timeout=4294967295",
173+
"nvme_core.io_timeout=300", // 300 sec should be enough for firewalls to be replaced
174174
"systemd.unified_cgroup_hierarchy=0",
175175
}
176176

cmd/install_test.go

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ func Test_installer_buildCMDLine(t *testing.T) {
380380
ExitCode: 0,
381381
},
382382
},
383-
// CMDLINE="console=${CONSOLE} root=UUID=${ROOT_UUID} init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
384-
want: "console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0",
383+
// CMDLINE="console=${CONSOLE} root=UUID=${ROOT_UUID} init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
384+
want: "console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0",
385385
},
386386
{
387387
name: "with raid",
@@ -400,8 +400,8 @@ func Test_installer_buildCMDLine(t *testing.T) {
400400
ExitCode: 0,
401401
},
402402
},
403-
// CMDLINE="console=${CONSOLE} root=UUID=${ROOT_UUID} init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
404-
want: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0 rdloaddriver=raid0 rdloaddriver=raid1 rd.md.uuid=543eb7f8:98d4d986:e669824d:bebe69e5",
403+
// CMDLINE="console=${CONSOLE} root=UUID=${ROOT_UUID} init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
404+
want: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0 rdloaddriver=raid0 rdloaddriver=raid1 rd.md.uuid=543eb7f8:98d4d986:e669824d:bebe69e5",
405405
},
406406
}
407407
for _, tt := range tests {
@@ -709,7 +709,7 @@ func Test_installer_grubInstall(t *testing.T) {
709709
fsMocks: func(fs afero.Fs) {
710710
require.NoError(t, afero.WriteFile(fs, "/etc/metal/install.yaml", []byte(sampleInstallYAML), 0700))
711711
},
712-
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0",
712+
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0",
713713
oss: osUbuntu,
714714
execMocks: []fakeexecparams{
715715
{
@@ -732,7 +732,7 @@ func Test_installer_grubInstall(t *testing.T) {
732732
GRUB_TIMEOUT=5
733733
GRUB_DISTRIBUTOR=metal-ubuntu
734734
GRUB_CMDLINE_LINUX_DEFAULT=""
735-
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
735+
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
736736
GRUB_TERMINAL=serial
737737
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
738738
},
@@ -741,7 +741,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
741741
fsMocks: func(fs afero.Fs) {
742742
require.NoError(t, afero.WriteFile(fs, "/etc/metal/install.yaml", []byte(sampleInstallWithRaidYAML), 0700))
743743
},
744-
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0",
744+
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0",
745745
oss: osUbuntu,
746746
execMocks: []fakeexecparams{
747747
{
@@ -789,7 +789,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
789789
GRUB_TIMEOUT=5
790790
GRUB_DISTRIBUTOR=metal-ubuntu
791791
GRUB_CMDLINE_LINUX_DEFAULT=""
792-
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
792+
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
793793
GRUB_TERMINAL=serial
794794
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
795795
},
@@ -801,7 +801,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
801801
require.NoError(t, afero.WriteFile(fs, "/boot/initramfs-1.2.3.img", nil, 0700))
802802
require.NoError(t, afero.WriteFile(fs, "/etc/metal/install.yaml", []byte(sampleInstallYAML), 0700))
803803
},
804-
cmdline: "console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0",
804+
cmdline: "console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0",
805805
oss: osCentos,
806806
execMocks: []fakeexecparams{
807807
{
@@ -819,7 +819,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
819819
GRUB_TIMEOUT=5
820820
GRUB_DISTRIBUTOR=centos
821821
GRUB_CMDLINE_LINUX_DEFAULT=""
822-
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
822+
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=543eb7f8-98d4-d986-e669-824dbebe69e5 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
823823
GRUB_TERMINAL=serial
824824
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
825825
},
@@ -831,7 +831,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
831831
require.NoError(t, afero.WriteFile(fs, "/boot/initramfs-1.2.3.img", nil, 0700))
832832
require.NoError(t, afero.WriteFile(fs, "/etc/metal/install.yaml", []byte(sampleInstallWithRaidYAML), 0700))
833833
},
834-
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0",
834+
cmdline: "console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0",
835835
oss: osCentos,
836836
execMocks: []fakeexecparams{
837837
{
@@ -874,7 +874,7 @@ GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
874874
GRUB_TIMEOUT=5
875875
GRUB_DISTRIBUTOR=centos
876876
GRUB_CMDLINE_LINUX_DEFAULT=""
877-
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 systemd.unified_cgroup_hierarchy=0"
877+
GRUB_CMDLINE_LINUX="console=ttyS1,115200n8 root=UUID=ace079b5-06be-4429-bbf0-081ea4d7d0d9 init=/sbin/init net.ifnames=0 biosdevname=0 nvme_core.io_timeout=300 systemd.unified_cgroup_hierarchy=0"
878878
GRUB_TERMINAL=serial
879879
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=1 --word=8"`,
880880
},

debian/Dockerfile

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ ARG FRR_VERSION_DETAIL
2121
ARG GOLLDPD_VERSION
2222
ARG DOCKER_APT_OS
2323
ARG DOCKER_APT_CHANNEL
24+
ARG FRR_APT_CHANNEL
2425
ARG CRI_VERSION
2526
ARG SEMVER_MAJOR_MINOR
2627
ARG KERNEL_VERSION
@@ -40,8 +41,6 @@ COPY context/kernel-installation.sh /
4041

4142
RUN set -ex \
4243
&& rm -f /.dockerenv \
43-
&& sed 's@archive.ubuntu.com@de.archive.ubuntu.com@' -i /etc/apt/sources.list \
44-
&& sed 's@security.ubuntu.com@de.archive.ubuntu.com@' -i /etc/apt/sources.list \
4544
&& apt-get update \
4645
&& apt-get upgrade --yes \
4746
&& apt-get install --yes --no-install-recommends \
@@ -85,16 +84,13 @@ RUN set -ex \
8584
watchdog \
8685
wget \
8786
vim \
87+
zstd \
8888
&& curl -fLsS https://github.com/metal-stack/go-lldpd/releases/download/${GOLLDPD_VERSION}/go-lldpd.tgz -o /tmp/go-lldpd.tgz \
8989
&& tar -xf /tmp/go-lldpd.tgz \
9090
&& curl -fLsS ${DOCKER_URL}/linux/${DOCKER_APT_OS}/gpg | apt-key add - \
91-
&& add-apt-repository "deb [arch=amd64] ${DOCKER_URL}/linux/${DOCKER_APT_OS} ${DOCKER_APT_CHANNEL} stable" \
91+
&& echo "deb [arch=amd64] ${DOCKER_URL}/linux/${DOCKER_APT_OS} ${DOCKER_APT_CHANNEL} stable" > /etc/apt/sources.list.d/docker.list \
9292
&& apt-get update \
9393
&& apt-get install --yes --no-install-recommends docker-ce \
94-
# docker is always installed in /usr/bin/docker, on ubuntu /bin is a link to /usr/bin
95-
# debian does not have this link, therefore /bin/docker does not exist.
96-
# gardener requires /bin/docker in their kubelet.service.
97-
&& ln -s /usr/bin/docker /bin/docker || true \
9894
# Install crictl to be able to manipulate containers managed with containerd instead of dockerd
9995
&& curl -fLsS https://github.com/kubernetes-sigs/cri-tools/releases/download/${CRI_VERSION}/crictl-${CRI_VERSION}-linux-amd64.tar.gz -o /tmp/crictl-${CRI_VERSION}-linux-amd64.tar.gz \
10096
&& tar -xf /tmp/crictl-${CRI_VERSION}-linux-amd64.tar.gz -C /usr/local/bin \
@@ -105,7 +101,7 @@ RUN set -ex \
105101
&& update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \
106102
# install frr from frrouting debian package repo
107103
&& curl -fLsS https://deb.frrouting.org/frr/keys.asc | apt-key add - \
108-
&& add-apt-repository "deb [arch=amd64] https://deb.frrouting.org/frr $(lsb_release -s -c) ${FRR_VERSION}" \
104+
&& echo "deb [arch=amd64] https://deb.frrouting.org/frr ${FRR_APT_CHANNEL} ${FRR_VERSION}" > /etc/apt/sources.list.d/frr.list \
109105
&& apt update \
110106
&& apt install --yes --no-install-recommends frr=${FRR_VERSION_DETAIL} frr-pythontools=${FRR_VERSION_DETAIL} \
111107
# Install Intel Firmware for e800 based network cards
@@ -143,7 +139,6 @@ RUN systemctl set-default multi-user.target \
143139
docker.service \
144140
frr.service \
145141
systemd-networkd \
146-
systemd-resolved \
147142
systemd-timesyncd \
148143
watchdog.service \
149144
cloud-init-custom.service \

debian/context/kernel-installation.sh

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,18 @@ if [ "${ID}" = "ubuntu" ] ; then
1717
/tmp/linux-image* \
1818
/tmp/linux-modules* \
1919
intel-microcode
20+
# Ubuntu still requires it
21+
systemctl enable systemd-resolved
2022
else
2123
echo "Debian - Install kernel"
2224

2325
cat <<EOF > /etc/apt/sources.list
24-
deb http://deb.debian.org/debian bullseye main contrib non-free
25-
deb http://deb.debian.org/debian bullseye-updates main contrib non-free
26-
deb http://deb.debian.org/debian bullseye-backports main
27-
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
26+
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
27+
deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
28+
deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
2829
EOF
2930

30-
apt update && apt install -y intel-microcode "linux-image-${KERNEL_VERSION}-amd64-unsigned"
31+
apt update && apt install -y intel-microcode linux-image-${KERNEL_VERSION}-amd64
3132
fi
3233

3334
# Remove WIFI, netronome, v4l and liquidio firmware to save ~300MB image size

debian/docker-make.debian.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,20 @@ default-build-args:
1515
- ICE_PKG_VERSION=1.3.30.0
1616
builds:
1717
-
18-
name: "Debian 11"
18+
name: "Debian 12"
1919
tags:
2020
- ${SEMVER}
2121
- ${SEMVER_MAJOR_MINOR}
2222
build-args:
23-
- BASE_OS_VERSION=11
24-
- DOCKER_APT_CHANNEL=bullseye
23+
- BASE_OS_VERSION=bookworm
24+
- DOCKER_APT_CHANNEL=bookworm
2525
- FRR_VERSION=frr-8
26-
- FRR_VERSION_DETAIL=8.5.1-0~deb11u1
27-
- SEMVER_MAJOR_MINOR=11
26+
- FRR_VERSION_DETAIL=8.5.2-0~deb11u1
27+
- FRR_APT_CHANNEL=bullseye
28+
- SEMVER_MAJOR_MINOR=12
2829
- SEMVER=${SEMVER_MAJOR_MINOR}${SEMVER_PATCH}
29-
# see https://packages.debian.org/bullseye-backports/kernel/ for available versions
30-
- KERNEL_VERSION=6.1.0-0.deb11.7
30+
# see https://packages.debian.org/bookworm/kernel/ for available versions
31+
- KERNEL_VERSION=6.1.0-9
3132
after:
3233
- cd ../ && OS_NAME=${OS_NAME} ./test.sh quay.io/metalstack/${OS_NAME}:${SEMVER}
3334
- OS_NAME=${OS_NAME} SEMVER_MAJOR_MINOR=${SEMVER_MAJOR_MINOR} SEMVER_PATCH=${SEMVER_PATCH} ../export.sh

debian/docker-make.ubuntu.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ default-build-args:
1313
- DOCKER_APT_CHANNEL=jammy
1414
- CRI_VERSION=v1.27.0
1515
# see https://kernel.ubuntu.com/~kernel-ppa/mainline for available versions
16-
- UBUNTU_MAINLINE_KERNEL_VERSION=v6.1.32
16+
- UBUNTU_MAINLINE_KERNEL_VERSION=v6.1.34
1717
- ICE_VERSION=1.11.14
1818
- ICE_PKG_VERSION=1.3.30.0
1919
builds:
@@ -25,7 +25,8 @@ builds:
2525
build-args:
2626
- BASE_OS_VERSION=22.04
2727
- FRR_VERSION=frr-8
28-
- FRR_VERSION_DETAIL=8.5.1-0~ubuntu22.04.1
28+
- FRR_VERSION_DETAIL=8.5.2-0~ubuntu22.04.1
29+
- FRR_APT_CHANNEL=jammy
2930
- SEMVER_MAJOR_MINOR=22.04
3031
- SEMVER=${SEMVER_MAJOR_MINOR}${SEMVER_PATCH}
3132
after:

firewall/Dockerfile

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
ARG BASE_OS_NAME
22
ARG BASE_OS_VERSION
33
ARG DROPTAILER_VERSION=v0.2.11
4-
ARG FIREWALL_CONTROLLER_VERSION=v2.0.3
5-
ARG TAILSCALE_VERSION=v1.42.0
4+
ARG FIREWALL_CONTROLLER_VERSION=v2.0.5
5+
ARG TAILSCALE_VERSION=v1.44.0
66

77
FROM ghcr.io/metal-stack/droptailer-client:${DROPTAILER_VERSION} AS droptailer-artifacts
88

@@ -48,14 +48,7 @@ RUN rm -f /etc/apt/sources.list.d/* \
4848
&& apt install --yes frr frr-pythontools --no-install-recommends --option=Dpkg::Options::=--force-confdef \
4949
&& apt --yes autoremove
5050

51-
# Pre-Configure chrony instead of systemd-timesyncd because it is able to run in a VRF context without issues.
52-
# Final setup is left to metal-networker that knows the internet-facing VRF.
53-
# To succeed metal-networker enabling chrony it is important to provide the chrony unit template in advance.
54-
# Usually the generator creates that template but the generator is loaded only after system boot or at `systemctl daemon-reload` (cannot be run from Docker Context).
55-
# systemd-time-wait-sync.service is disabled because it sometimes does not start and blocks depending services like logrotate.
56-
# see https://github.com/systemd/systemd/issues/14061
57-
RUN systemctl disable systemd-timesyncd \
58-
&& systemctl disable chrony \
51+
RUN systemctl disable chrony \
5952
&& systemctl mask chrony \
6053
&& systemctl disable systemd-time-wait-sync.service \
6154
&& systemctl mask systemd-time-wait-sync.service \
@@ -67,7 +60,6 @@ RUN systemctl disable systemd-timesyncd \
6760
&& systemctl enable fever \
6861
&& systemctl enable frr.service
6962

70-
7163
# Fix permissions of systemd service files
7264
RUN chmod 0644 /lib/systemd/system/*.service
7365

0 commit comments

Comments
 (0)