Skip to content

Commit 400022a

Browse files
author
liuh-80
committed
Fix submodule sonic-swss-common merge conflict
2 parents 58cb415 + 937bf09 commit 400022a

File tree

309 files changed

+62324
-4928
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

309 files changed

+62324
-4928
lines changed

.azure-pipelines/azure-pipelines-image-template.yml

+5-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
ENABLE_DOCKER_BASE_PULL=y make PLATFORM=$(PLATFORM_AZP) PLATFORM_ARCH=$(PLATFORM_ARCH) $(BUILD_OPTIONS) configure
4949
displayName: 'Make configure'
5050
postSteps:
51-
- script: cp target -r $(Build.ArtifactStagingDirectory)/
51+
- script: mv target $(Build.ArtifactStagingDirectory)/
5252
displayName: Copy Artifacts
5353
condition: always()
5454
- publish: $(Build.ArtifactStagingDirectory)
@@ -58,6 +58,10 @@ jobs:
5858
condition: failed()
5959
artifact: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)$(System.JobAttempt)'
6060
displayName: "Archive failed sonic image"
61+
- template: trigger-publish-artifacts-build.yml
62+
parameters:
63+
artifactName: 'sonic-buildimage.$(GROUP_NAME)$(GROUP_EXTNAME)'
64+
publishPrefix: '$(Build.DefinitionName)/$(Build.SourceBranchName)/$(GROUP_NAME)'
6165
- ${{ parameters.postSteps }}
6266
- template: cleanup.yml
6367
jobGroups: ${{ parameters.jobGroups }}

.azure-pipelines/run-test-template.yml

+4-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ parameters:
77
type: string
88
- name: ptf_name
99
type: string
10+
- name: vmtype
11+
type: string
12+
default: 'ceos'
1013
- name: section
1114
type: string
1215
default: ''
@@ -41,7 +44,7 @@ steps:
4144
git reset --hard origin/master
4245
sed -i s/use_own_value/${username}/ ansible/veos_vtb
4346
echo aaa > ansible/password.txt
44-
docker exec sonic-mgmt bash -c "pushd /data/sonic-mgmt/ansible;./testbed-cli.sh -d /data/sonic-vm -m $(inventory) -t $(testbed_file) -k ceos refresh-dut ${{ parameters.tbname }} password.txt" && sleep 180
47+
docker exec sonic-mgmt bash -c "pushd /data/sonic-mgmt/ansible;./testbed-cli.sh -d /data/sonic-vm -m $(inventory) -t $(testbed_file) -k ${{ parameters.vmtype }} refresh-dut ${{ parameters.tbname }} password.txt" && sleep 180
4548
displayName: "Setup testbed"
4649

4750
- script: |
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# The steps to trigger the pipeline to publish the artifacts
2+
3+
parameters:
4+
- name: artifactName
5+
type: string
6+
default: ""
7+
- name: publishPrefix
8+
type: string
9+
default: "$(Build.DefinitionName)/$(Build.SourceBranchName)"
10+
11+
steps:
12+
- script: |
13+
. functions.sh
14+
sonic_version=$(sonic_get_version)
15+
latest_tag=$(git describe --tags --abbrev=0)
16+
docker_tags="$sonic_version $(Build.SourceBranchName)"
17+
if [ "$(Build.SourceBranchName)" == "master" ]; then
18+
docker_tags="$docker_tags latest"
19+
fi
20+
echo "##vso[task.setvariable variable=sonic_version]$sonic_version"
21+
echo "##vso[task.setvariable variable=latest_tag]$latest_tag"
22+
echo "##vso[task.setvariable variable=docker_tags]$docker_tags"
23+
condition: ne(variables['Build.Reason'], 'PullRequest')
24+
displayName: 'Set trigger build variables'
25+
- task: TriggerBuild@4
26+
condition: ne(variables['Build.Reason'], 'PullRequest')
27+
inputs:
28+
definitionIsInCurrentTeamProject: false
29+
teamProject: internal
30+
tfsServer: $(System.CollectionUri)
31+
buildDefinition: 'publish-artifacts'
32+
queueBuildForUserThatTriggeredBuild: true
33+
ignoreSslCertificateErrors: false
34+
useSameSourceVersion: false
35+
useCustomSourceVersion: false
36+
useSameBranch: false
37+
waitForQueuedBuildsToFinish: false
38+
storeInEnvironmentVariable: true
39+
authenticationMethod: 'Personal Access Token'
40+
password: '$(system.accesstoken)'
41+
enableBuildInQueueCondition: false
42+
dependentOnSuccessfulBuildCondition: false
43+
dependentOnFailedBuildCondition: false
44+
checkbuildsoncurrentbranch: false
45+
failTaskIfConditionsAreNotFulfilled: false
46+
buildParameters: ''
47+
templateParameters: |
48+
pipelineContext: {"buildId":"$(Build.BuildId)",
49+
"pipelineId":"$(System.DefinitionId)",
50+
"project": "$(System.TeamProject)",
51+
"branchName":"$(Build.SourceBranchName)"},
52+
artifactContext: {"artifactName":"${{ parameters.artifactName }}",
53+
"artifactPatterns":"**/*.bin\n
54+
**/*.swi\n
55+
**/*.raw\n
56+
**/*.img.gz\n
57+
**/*-rpc.gz\n
58+
**/python-saithrift*.deb"},
59+
publishContext: {"publishPrefix":"${{ parameters.publishPrefix }}",
60+
"keepArtifactName":false,
61+
"dockerImagePatterns":"target/*-rpc.gz",
62+
"dockerTags":"$(docker_tags)",
63+
"version":"$(sonic_version)",
64+
"latestTag":"$(latest_tag)"}

.github/pull_request_template.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ pull request for inclusion in the changelog:
4242
<!--
4343
Provide a link to config_db schema for the table for which YANG model
4444
is defined
45-
Link should point to correct section on https://github.com/Azure/SONiC/wiki/Configuration.
45+
Link should point to correct section on https://github.com/Azure/sonic-buildimage/blob/master/src/sonic-yang-models/doc/Configuration.md
4646
-->
4747

4848
#### A picture of a cute animal (not mandatory but encouraged)

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -103,3 +103,6 @@
103103
[submodule "src/sonic-p4rt/sonic-pins"]
104104
path = src/sonic-p4rt/sonic-pins
105105
url = https://github.com/Azure/sonic-pins.git
106+
[submodule "src/ptf-py3"]
107+
path = src/ptf-py3
108+
url = https://github.com/p4lang/ptf.git

Makefile

+2-1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ endif
4040
ifeq ($(NOBULLSEYE), 0)
4141
BLDENV=bullseye make -f Makefile.work $@
4242
endif
43+
BLDENV=bullseye make -f Makefile.work docker-cleanup
4344

4445
jessie:
4546
@echo "+++ Making $@ +++"
@@ -83,7 +84,7 @@ $(PLATFORM_PATH):
8384
configure : $(PLATFORM_PATH)
8485
$(call make_work, $@)
8586

86-
clean reset showtag sonic-slave-build sonic-slave-bash :
87+
clean reset showtag docker-cleanup sonic-slave-build sonic-slave-bash :
8788
$(call make_work, $@)
8889

8990
# Freeze the versions, see more detail options: scripts/versions_manager.py freeze -h

Makefile.cache

+1-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ define GET_MOD_DEP_SHA
186186
$(if $($(1)_DEP_FILES_MISSING), $(warning "[ DPKG ] Dependecy file(s) are not found for $(1) : $($(1)_DEP_FILES_MISSING)))
187187

188188
# Include package dependencies hash values into package hash calculation
189-
$(eval $(1)_DEP_PKGS_SHA := $(foreach dfile,$(1)_MOD_DEP_PKGS,$(dfile)_DEP_MOD_SHA $(dfile)_MOD_HASH))
189+
$(eval $(1)_DEP_PKGS_SHA := $(foreach dfile,$($(1)_MOD_DEP_PKGS),$($(dfile)_DEP_MOD_SHA) $($(dfile)_MOD_HASH)))
190190

191191
$(eval $(1)_DEP_MOD_SHA := $(shell bash -c "git hash-object $($(1)_DEP_MOD_SHA_FILES) && echo $($(1)_DEP_PKGS_SHA)" \
192192
| sha1sum | awk '{print substr($$1,0,23);}'))

Makefile.work

+62-2
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ $(shell rm -f .screen)
9090
MAKEFLAGS += -B
9191

9292
CONFIGURED_ARCH := $(shell [ -f .arch ] && cat .arch || echo $(PLATFORM_ARCH))
93+
CONFIGURED_PLATFORM = $(if $(PLATFORM),$(PLATFORM),$(shell cat .platform 2>/dev/null))
9394
ifeq ($(CONFIGURED_ARCH),)
9495
override CONFIGURED_ARCH = amd64
9596
endif
@@ -137,19 +138,33 @@ endif
137138
endif
138139
SLAVE_IMAGE = $(SLAVE_BASE_IMAGE)-$(USER_LC)
139140

141+
# Support FIPS feature, armhf not supported yet
142+
ifeq ($(PLATFORM_ARCH),armhf)
143+
ENABLE_FIPS_FEATURE := n
144+
ENABLE_FIPS := n
145+
endif
146+
147+
ifeq ($(ENABLE_FIPS_FEATURE), n)
148+
ifeq ($(ENABLE_FIPS), y)
149+
$(error Cannot set fips config ENABLE_FIPS=y when ENABLE_FIPS_FEATURE=n)
150+
endif
151+
endif
152+
140153
# Generate the version control build info
141154
$(shell SONIC_VERSION_CONTROL_COMPONENTS=$(SONIC_VERSION_CONTROL_COMPONENTS) \
142155
TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) PACKAGE_URL_PREFIX=$(PACKAGE_URL_PREFIX) \
143156
scripts/generate_buildinfo_config.sh)
144157

145158
# Generate the slave Dockerfile, and prepare build info for it
146-
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
159+
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) DOCKER_EXTRA_OPTS=$(DOCKER_EXTRA_OPTS) DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) j2 $(SLAVE_DIR)/Dockerfile.j2 > $(SLAVE_DIR)/Dockerfile)
147160
$(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QEMU_ENVIRON) j2 $(SLAVE_DIR)/Dockerfile.user.j2 > $(SLAVE_DIR)/Dockerfile.user)
148161
$(shell BUILD_SLAVE=y DEFAULT_CONTAINER_REGISTRY=$(DEFAULT_CONTAINER_REGISTRY) scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
149162

150163
# Add the versions in the tag, if the version change, need to rebuild the slave
151164
SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}')
152-
SLAVE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* | sha1sum | awk '{print substr($$1,0,11);}')
165+
# Calculate the slave TAG based on $(USER)/$(PWD)/$(CONFIGURED_PLATFORM) to get unique SHA ID
166+
SLAVE_TAG = $(shell (cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* .git/HEAD && echo $(USER)/$(PWD)/$(CONFIGURED_PLATFORM)) \
167+
| sha1sum | awk '{print substr($$1,0,11);}')
153168

154169
OVERLAY_MODULE_CHECK := \
155170
lsmod | grep -q "^overlay " &>/dev/null || \
@@ -159,6 +174,14 @@ OVERLAY_MODULE_CHECK := \
159174

160175
BUILD_TIMESTAMP := $(shell date +%Y%m%d\.%H%M%S)
161176

177+
# Create separate Docker lockfiles for saving vs. loading an image.
178+
ifeq ($(DOCKER_LOCKDIR),)
179+
override DOCKER_LOCKDIR := /tmp/docklock
180+
endif
181+
DOCKER_LOCKFILE_SAVE := $(DOCKER_LOCKDIR)/docker_save.lock
182+
$(shell mkdir -m 0777 -p $(DOCKER_LOCKDIR))
183+
$(shell [ -f $(DOCKER_LOCKFILE_SAVE) ] || (touch $(DOCKER_LOCKFILE_SAVE) && chmod 0777 $(DOCKER_LOCKFILE_SAVE)))
184+
162185
ifeq ($(DOCKER_BUILDER_MOUNT),)
163186
override DOCKER_BUILDER_MOUNT := "$(PWD):/sonic"
164187
endif
@@ -169,6 +192,7 @@ endif
169192

170193
DOCKER_RUN := docker run --rm=true --privileged --init \
171194
-v $(DOCKER_BUILDER_MOUNT) \
195+
-v "$(DOCKER_LOCKDIR):$(DOCKER_LOCKDIR)" \
172196
-w $(DOCKER_BUILDER_WORKDIR) \
173197
-e "http_proxy=$(http_proxy)" \
174198
-e "https_proxy=$(https_proxy)" \
@@ -199,6 +223,30 @@ ifneq ($(SIGNING_CERT),)
199223
endif
200224
endif
201225

226+
# User name and tag for "docker-*" images created by native dockerd mode.
227+
ifeq ($(strip $(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD)),y)
228+
DOCKER_USERNAME = $(USER_LC)
229+
DOCKER_USERTAG = $(SLAVE_TAG)
230+
else
231+
DOCKER_USERNAME = sonic
232+
DOCKER_USERTAG = latest
233+
endif
234+
235+
# Define canned sequence to clean up Docker image cache.
236+
# - These are the remnants from building the runtime Docker images using native (host) Docker daemon.
237+
# - Image naming convention differs on a shared build system vs. non-shared.
238+
# $(docker-image-cleanup)
239+
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD),y)
240+
define docker-image-cleanup
241+
@for i in $(shell docker images --quiet --filter 'dangling=true') ; do (docker rmi -f $$i &> /dev/null || true) ; done
242+
@for i in $(shell docker images --quiet docker-*$(DOCKER_USERNAME):$(DOCKER_USERTAG)) ; do (docker rmi -f $$i &> /dev/null || true) ; done
243+
endef
244+
else
245+
define docker-image-cleanup
246+
@:
247+
endef
248+
endif
249+
202250
ifeq ($(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD), y)
203251
ifneq ($(MULTIARCH_QEMU_ENVIRON), y)
204252
DOCKER_RUN += -v /var/run/docker.sock:/var/run/docker.sock
@@ -274,6 +322,7 @@ SONIC_BUILD_INSTRUCTION := make \
274322
BUILD_NUMBER=$(BUILD_NUMBER) \
275323
BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \
276324
SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \
325+
SLAVE_TAG=$(SLAVE_TAG) \
277326
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
278327
ENABLE_ZTP=$(ENABLE_ZTP) \
279328
INCLUDE_PDE=$(INCLUDE_PDE) \
@@ -298,8 +347,14 @@ SONIC_BUILD_INSTRUCTION := make \
298347
HTTP_PROXY=$(http_proxy) \
299348
HTTPS_PROXY=$(https_proxy) \
300349
NO_PROXY=$(no_proxy) \
350+
DOCKER_USERNAME=$(DOCKER_USERNAME) \
351+
DOCKER_USERTAG=$(DOCKER_USERTAG) \
352+
DOCKER_LOCKDIR=$(DOCKER_LOCKDIR) \
353+
DOCKER_LOCKFILE_SAVE=$(DOCKER_LOCKFILE_SAVE) \
354+
SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD=$(SONIC_CONFIG_USE_NATIVE_DOCKERD_FOR_BUILD) \
301355
SONIC_INCLUDE_SYSTEM_TELEMETRY=$(INCLUDE_SYSTEM_TELEMETRY) \
302356
INCLUDE_DHCP_RELAY=$(INCLUDE_DHCP_RELAY) \
357+
INCLUDE_MACSEC=$(INCLUDE_MACSEC) \
303358
SONIC_INCLUDE_RESTAPI=$(INCLUDE_RESTAPI) \
304359
SONIC_INCLUDE_MUX=$(INCLUDE_MUX) \
305360
TELEMETRY_WRITABLE=$(TELEMETRY_WRITABLE) \
@@ -313,6 +368,8 @@ SONIC_BUILD_INSTRUCTION := make \
313368
ENABLE_AUTO_TECH_SUPPORT=$(ENABLE_AUTO_TECH_SUPPORT) \
314369
BUILD_MULTIASIC_KVM=$(BUILD_MULTIASIC_KVM) \
315370
ENABLE_ASAN=$(ENABLE_ASAN) \
371+
ENABLE_FIPS_FEATURE=$(ENABLE_FIPS_FEATURE) \
372+
ENABLE_FIPS=$(ENABLE_FIPS) \
316373
$(SONIC_OVERRIDE_BUILD_VARS)
317374

318375
.PHONY: sonic-slave-build sonic-slave-bash init reset
@@ -352,6 +409,9 @@ else
352409
@$(DOCKER_RUN) $(SLAVE_IMAGE):$(SLAVE_TAG) bash -c "$(SONIC_BUILD_INSTRUCTION) $@; scripts/collect_build_version_files.sh \$$?"
353410
endif
354411

412+
docker-cleanup:
413+
$(docker-image-cleanup)
414+
355415
sonic-build-hooks:
356416
@pushd src/sonic-build-hooks; TRUSTED_GPG_URLS=$(TRUSTED_GPG_URLS) make all; popd
357417
@cp src/sonic-build-hooks/buildinfo/sonic-build-hooks* $(SLAVE_DIR)/buildinfo

azure-pipelines.yml

+17-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,9 @@ variables:
4343
- ${{ else }}:
4444
- template: .azure-pipelines/template-variables.yml@buildimage
4545
- name: CACHE_MODE
46-
value: rcache
46+
value: rcache
47+
- name: ENABLE_FIPS
48+
value: y
4749

4850
stages:
4951
- stage: BuildVS
@@ -191,3 +193,17 @@ stages:
191193
tbname: vms-kvm-t1-lag
192194
ptf_name: ptf_vms6-2
193195
tbtype: t1-lag
196+
197+
- job:
198+
pool: sonictest-sonic-t0
199+
displayName: "kvmtest-t0-sonic"
200+
timeoutInMinutes: 360
201+
202+
steps:
203+
- template: .azure-pipelines/run-test-template.yml
204+
parameters:
205+
dut: vlab-02
206+
tbname: vms-kvm-t0-64-32
207+
ptf_name: ptf_vms6-1
208+
tbtype: t0-sonic
209+
vmtype: vsonic

build_debian.sh

+13-14
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,9 @@ set -x -e
3131
CONFIGURED_ARCH=$([ -f .arch ] && cat .arch || echo amd64)
3232

3333
## docker engine version (with platform)
34-
DOCKER_VERSION=5:20.10.7~3-0~debian-$IMAGE_DISTRO
35-
LINUX_KERNEL_VERSION=5.10.0-8-2
34+
DOCKER_VERSION=5:20.10.14~3-0~debian-$IMAGE_DISTRO
35+
CONTAINERD_IO_VERSION=1.5.11-1
36+
LINUX_KERNEL_VERSION=5.10.0-12-2
3637

3738
## Working directory to prepare the file system
3839
FILESYSTEM_ROOT=./fsroot
@@ -188,6 +189,10 @@ sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/arista-
188189
sudo cp files/initramfs-tools/resize-rootfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/resize-rootfs
189190
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/resize-rootfs
190191

192+
# Hook into initramfs: upgrade SSD from initramfs
193+
sudo cp files/initramfs-tools/ssd-upgrade $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/ssd-upgrade
194+
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/ssd-upgrade
195+
191196
# Hook into initramfs: run fsck to repair a non-clean filesystem prior to be mounted
192197
sudo cp files/initramfs-tools/fsck-rootfs $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/fsck-rootfs
193198
sudo chmod +x $FILESYSTEM_ROOT/etc/initramfs-tools/scripts/init-premount/fsck-rootfs
@@ -233,17 +238,12 @@ if [[ $CONFIGURED_ARCH == armhf ]]; then
233238
# update ssl ca certificates for secure pem
234239
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT c_rehash
235240
fi
236-
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.gpg -fsSL https://download.docker.com/linux/debian/gpg
237-
sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add /tmp/docker.gpg
238-
sudo LANG=C chroot $FILESYSTEM_ROOT rm /tmp/docker.gpg
241+
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT curl -o /tmp/docker.asc -fsSL https://download.docker.com/linux/debian/gpg
242+
sudo LANG=C chroot $FILESYSTEM_ROOT mv /tmp/docker.asc /etc/apt/trusted.gpg.d/
239243
sudo LANG=C chroot $FILESYSTEM_ROOT add-apt-repository \
240244
"deb [arch=$CONFIGURED_ARCH] https://download.docker.com/linux/debian $IMAGE_DISTRO stable"
241245
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get update
242-
if dpkg --compare-versions ${DOCKER_VERSION} ge "18.09"; then
243-
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION}
244-
else
245-
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION}
246-
fi
246+
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install docker-ce=${DOCKER_VERSION} docker-ce-cli=${DOCKER_VERSION} containerd.io=${CONTAINERD_IO_VERSION}
247247

248248
# Uninstall 'python3-gi' installed as part of 'software-properties-common' to remove debian version of 'PyGObject'
249249
# pip version of 'PyGObject' will be installed during installation of 'sonic-host-services'
@@ -271,8 +271,6 @@ fi
271271
sudo mkdir -p $FILESYSTEM_ROOT/etc/systemd/system/docker.service.d/
272272
## Note: $_ means last argument of last command
273273
sudo cp files/docker/docker.service.conf $_
274-
## Fix systemd race between docker and containerd
275-
sudo sed -i '/After=/s/$/ containerd.service/' $FILESYSTEM_ROOT/lib/systemd/system/docker.service
276274

277275
## Create default user
278276
## Note: user should be in the group with the same name, and also in sudo/docker/redis groups
@@ -407,7 +405,8 @@ sudo sed -i 's/LOAD_KEXEC=true/LOAD_KEXEC=false/' $FILESYSTEM_ROOT/etc/default/k
407405
## Remove sshd host keys, and will regenerate on first sshd start
408406
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
409407
sudo cp files/sshd/host-ssh-keygen.sh $FILESYSTEM_ROOT/usr/local/bin/
410-
sudo cp -f files/sshd/sshd.service $FILESYSTEM_ROOT/lib/systemd/system/ssh.service
408+
sudo mkdir $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d
409+
sudo cp files/sshd/override.conf $FILESYSTEM_ROOT/etc/systemd/system/ssh.service.d/override.conf
411410
# Config sshd
412411
# 1. Set 'UseDNS' to 'no'
413412
# 2. Configure sshd to close all SSH connetions after 15 minutes of inactivity
@@ -648,5 +647,5 @@ fi
648647
pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS -C ${DOCKERFS_PATH}var/lib/docker .; popd
649648

650649
## Compress together with /boot, /var/lib/docker and $PLATFORM_DIR as an installer payload zip file
651-
pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd
650+
pushd $FILESYSTEM_ROOT && sudo zip --symlinks $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ $PLATFORM_DIR/; popd
652651
sudo zip -g -n .squashfs:.gz $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS

0 commit comments

Comments
 (0)