one image implementation (#215)
* Single image * Fix review comments * Update syncd service. Add HW mgmt to Mellanox single image. * Add single image template for Broadcom platform. SKU should be provided during configure: make configure PLATFORM=broadcom SKU=Force10-S6000 * Add single image template for Cavium platform. SKU should be provided during configure: make configure PLATFORM=cavium SKU=AS7512 * Add description to sonic_debian_extension.j2 file.
This commit is contained in:
parent
c18b65bc16
commit
34ea91349c
1
Makefile
1
Makefile
@ -30,6 +30,7 @@ DOCKER_BUILD = docker build --no-cache \
|
||||
-C sonic \
|
||||
-f slave.mk \
|
||||
PLATFORM=$(PLATFORM) \
|
||||
SKU=$(SKU) \
|
||||
$@
|
||||
|
||||
sonic-slave-build :
|
||||
|
@ -132,15 +132,6 @@ sudo chroot $FILESYSTEM_ROOT update-initramfs -u
|
||||
## Install latest intel igb driver
|
||||
sudo cp target/debs/igb.ko $FILESYSTEM_ROOT/lib/modules/3.16.0-4-amd64/kernel/drivers/net/ethernet/intel/igb/igb.ko
|
||||
|
||||
## Install package without starting service
|
||||
## ref: https://wiki.debian.org/chroot
|
||||
trap_push 'sudo rm -f $FILESYSTEM_ROOT/usr/sbin/policy-rc.d'
|
||||
sudo tee -a $FILESYSTEM_ROOT/usr/sbin/policy-rc.d > /dev/null <<EOF
|
||||
#!/bin/sh
|
||||
exit 1
|
||||
EOF
|
||||
sudo chmod a+x $FILESYSTEM_ROOT/usr/sbin/policy-rc.d
|
||||
|
||||
## Install docker
|
||||
echo '[INFO] Install docker'
|
||||
## Install apparmor utils since they're missing and apparmor is enabled in the kernel
|
||||
@ -172,7 +163,7 @@ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
## Note: gdisk is needed for sgdisk in install.sh
|
||||
## Note: parted is needed for partprobe in install.sh
|
||||
## Note: ca-certificates is needed for easy_install
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
file \
|
||||
ifupdown \
|
||||
iproute2 \
|
||||
@ -195,7 +186,9 @@ sudo LANG=C chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
i2c-tools \
|
||||
efibootmgr \
|
||||
usbutils \
|
||||
pciutils
|
||||
pciutils \
|
||||
iptables-persistent \
|
||||
logrotate
|
||||
|
||||
## Remove sshd host keys, and will regenerate on first sshd start
|
||||
sudo rm -f $FILESYSTEM_ROOT/etc/ssh/ssh_host_*_key*
|
||||
@ -248,6 +241,10 @@ EOF
|
||||
|
||||
sudo cp files/dhcp/rfc3442-classless-routes $FILESYSTEM_ROOT/etc/dhcp/dhclient-exit-hooks.d
|
||||
|
||||
if [ -f sonic_debian_extension.sh ]; then
|
||||
./sonic_debian_extension.sh $FILESYSTEM_ROOT
|
||||
fi
|
||||
|
||||
## Clean up apt
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoremove
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT apt-get autoclean
|
||||
@ -268,6 +265,9 @@ sudo rm -f $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
|
||||
sudo du -hs $FILESYSTEM_ROOT
|
||||
sudo mksquashfs $FILESYSTEM_ROOT $FILESYSTEM_SQUASHFS -e boot -e var/lib/docker
|
||||
|
||||
## Compress docker files
|
||||
pushd $FILESYSTEM_ROOT && sudo tar czf $OLDPWD/$FILESYSTEM_DOCKERFS var/lib/docker; popd
|
||||
|
||||
## Compress together with /boot and /var/lib/docker as an installer payload zip file
|
||||
pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/ -r var/lib/docker; popd
|
||||
sudo zip -g $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS
|
||||
pushd $FILESYSTEM_ROOT && sudo zip $OLDPWD/$ONIE_INSTALLER_PAYLOAD -r boot/; popd
|
||||
sudo zip -g $ONIE_INSTALLER_PAYLOAD $FILESYSTEM_SQUASHFS $FILESYSTEM_DOCKERFS
|
||||
|
@ -21,14 +21,14 @@ GIT_REVISION=$(git rev-parse --short HEAD)
|
||||
|
||||
mkdir -p `dirname $OUTPUT_ONIE_IMAGE`
|
||||
sudo rm -f $OUTPUT_ONIE_IMAGE
|
||||
if [ "$TARGET_MACHINE" = "generic" ]; then
|
||||
if [ "$IMAGE_TYPE" = "onie" ]; then
|
||||
## Generate an ONIE installer image
|
||||
## Note: Don't leave blank between lines. It is single line command.
|
||||
./onie-mk-demo.sh $TARGET_PLATFORM $TARGET_MACHINE $TARGET_PLATFORM-$TARGET_MACHINE-$ONIEIMAGE_VERSION \
|
||||
installer $TARGET_MACHINE/platform.conf $OUTPUT_ONIE_IMAGE OS $GIT_REVISION $ONIE_IMAGE_PART_SIZE \
|
||||
installer platform/$TARGET_MACHINE/platform.conf $OUTPUT_ONIE_IMAGE OS $GIT_REVISION $ONIE_IMAGE_PART_SIZE \
|
||||
$ONIE_INSTALLER_PAYLOAD
|
||||
## Use 'aboot' as target machine category which includes Aboot as bootloader
|
||||
elif [ "$TARGET_MACHINE" = "aboot" ]; then
|
||||
elif [ "$IMAGE_TYPE" = "aboot" ]; then
|
||||
## Add Aboot boot0 file into the image
|
||||
cp $ONIE_INSTALLER_PAYLOAD $OUTPUT_ONIE_IMAGE
|
||||
pushd files/Aboot && sudo zip -g $OLDPWD/$OUTPUT_ONIE_IMAGE boot0; popd
|
||||
|
@ -8,7 +8,7 @@ mkdir -p /etc/snmp
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -y /etc/sonic/snmp.yml -t /etc/swss/snmp/snmpd.conf.j2 >/etc/snmp/snmpd.conf
|
||||
|
||||
hwsku=`sonic-cfggen -m /etc/sonic/minigraph.xml -v minigraph_hwsku`
|
||||
/bin/cp -rf /usr/share/sonic/$hwsku/alias_map.json /etc/snmp/
|
||||
/bin/cp -rf /etc/ssw/$hwsku/alias_map.json /etc/snmp/
|
||||
|
||||
mkdir -p /var/sonic
|
||||
echo "# Config files managed by sonic-config-engine" >/var/sonic/config_status
|
||||
|
12
files/build_templates/bgp.service.j2
Normal file
12
files/build_templates/bgp.service.j2
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=BGP container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
12
files/build_templates/database.service.j2
Normal file
12
files/build_templates/database.service.j2
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=Database container
|
||||
Requires=docker.service
|
||||
After=docker.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
25
files/build_templates/docker_image_ctl.j2
Normal file
25
files/build_templates/docker_image_ctl.j2
Normal file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
start() {
|
||||
docker inspect --type container {{docker_container_name}} &>/dev/null
|
||||
if [ "$?" -eq "0" ]; then
|
||||
docker start -a {{docker_container_name}}
|
||||
else
|
||||
docker run {{docker_image_run_opt}} --name={{docker_container_name}} {{docker_image_name}}
|
||||
fi
|
||||
}
|
||||
|
||||
stop() {
|
||||
docker stop {{docker_container_name}}
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start|stop)
|
||||
$1
|
||||
;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
12
files/build_templates/lldp.service.j2
Normal file
12
files/build_templates/lldp.service.j2
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=LLDP container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
12
files/build_templates/snmp.service.j2
Normal file
12
files/build_templates/snmp.service.j2
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=SNMP container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
124
files/build_templates/sonic_debian_extension.j2
Normal file
124
files/build_templates/sonic_debian_extension.j2
Normal file
@ -0,0 +1,124 @@
|
||||
#!/bin/bash
|
||||
## This script is to automate loading of vendor specific docker images
|
||||
## and instalation of configuration files and vendor specific packages
|
||||
## to debian file system.
|
||||
##
|
||||
## USAGE:
|
||||
## ./sonic_debian_extension.sh FILESYSTEM_ROOT
|
||||
## PARAMETERS:
|
||||
## FILESYSTEM_ROOT
|
||||
## Path to debian file system root directory
|
||||
|
||||
FILESYSTEM_ROOT=$1
|
||||
[ -n "$FILESYSTEM_ROOT" ] || {
|
||||
echo "Error: no or empty FILESYSTEM_ROOT argument"
|
||||
exit 1
|
||||
}
|
||||
|
||||
## Enable debug output for script
|
||||
set -x -e
|
||||
|
||||
. functions.sh
|
||||
BUILD_TEMPLATES=files/build_templates
|
||||
IMAGE_CONFIGS=files/image_config
|
||||
VENDOR_CONFIGS=src/sonic-config-engine/platform
|
||||
|
||||
{% if installer_debs.strip() -%}
|
||||
clean_sys() {
|
||||
sudo umount $FILESYSTEM_ROOT/sys/fs/cgroup/* \
|
||||
$FILESYSTEM_ROOT/sys/fs/cgroup \
|
||||
$FILESYSTEM_ROOT/sys || true
|
||||
}
|
||||
trap_push clean_sys
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT mount sysfs /sys -t sysfs
|
||||
|
||||
sudo chroot $FILESYSTEM_ROOT service docker start
|
||||
sudo chroot $FILESYSTEM_ROOT docker version
|
||||
|
||||
# Install config engine dependencies
|
||||
sudo LANG=C DEBIAN_FRONTEND=noninteractive chroot $FILESYSTEM_ROOT apt-get -y install \
|
||||
python-lxml \
|
||||
python-jinja2 \
|
||||
python-netaddr \
|
||||
python-ipaddr \
|
||||
python-yaml
|
||||
|
||||
sudo dpkg --root=$FILESYSTEM_ROOT -i {{config_engine}}
|
||||
|
||||
# Create all needed directories
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/ssw/
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic/
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic/templates/
|
||||
|
||||
# Apply apt configuration files
|
||||
sudo cp $IMAGE_CONFIGS/apt/sources.list $FILESYSTEM_ROOT/etc/apt/
|
||||
sudo cp -R $IMAGE_CONFIGS/apt/sources.list.d/ $FILESYSTEM_ROOT/etc/apt/
|
||||
cat $IMAGE_CONFIGS/apt/sonic-dev.gpg.key | sudo LANG=C chroot $FILESYSTEM_ROOT apt-key add -
|
||||
|
||||
# Apply environtment configuration files
|
||||
sudo cp $IMAGE_CONFIGS/environment/environment $FILESYSTEM_ROOT/etc/
|
||||
sudo cp $IMAGE_CONFIGS/environment/motd $FILESYSTEM_ROOT/etc/
|
||||
|
||||
# Copy default minigraph
|
||||
sudo cp $IMAGE_CONFIGS/minigraph/minigraph_{{sonic_hwsku}}.xml $FILESYSTEM_ROOT/etc/sonic/minigraph.xml
|
||||
|
||||
# Copy NTP configuration files and templates
|
||||
sudo cp $IMAGE_CONFIGS/ntp/ntp-config.service $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable ntp-config.service
|
||||
sudo cp $IMAGE_CONFIGS/ntp/ntp-config.sh $FILESYSTEM_ROOT/usr/bin/
|
||||
sudo cp $IMAGE_CONFIGS/ntp/ntp.conf.j2 $FILESYSTEM_ROOT/etc/sonic/templates/
|
||||
sudo cp $IMAGE_CONFIGS/ntp/ntp.yml $FILESYSTEM_ROOT/etc/sonic/
|
||||
|
||||
# Copy rsyslog configuration files and templates
|
||||
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.service $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable rsyslog-config.service
|
||||
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog-config.sh $FILESYSTEM_ROOT/usr/bin/
|
||||
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.conf.j2 $FILESYSTEM_ROOT/etc/sonic/templates/
|
||||
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.yml $FILESYSTEM_ROOT/etc/sonic/
|
||||
sudo cp $IMAGE_CONFIGS/rsyslog/rsyslog.d/* $FILESYSTEM_ROOT/etc/rsyslog.d/
|
||||
|
||||
# Copy interfaces configuration files and templates
|
||||
sudo cp $IMAGE_CONFIGS/interfaces/interfaces-config.service $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable interfaces-config.service
|
||||
sudo cp $IMAGE_CONFIGS/interfaces/interfaces-config.sh $FILESYSTEM_ROOT/usr/bin/
|
||||
sudo cp $IMAGE_CONFIGS/interfaces/*.j2 $FILESYSTEM_ROOT/etc/sonic/templates/
|
||||
|
||||
# Copy SNMP configuration files
|
||||
sudo cp $IMAGE_CONFIGS/snmp/snmp.yml $FILESYSTEM_ROOT/etc/sonic/
|
||||
|
||||
# Generate system desription file
|
||||
export git_revision=$(git rev-parse --short HEAD)
|
||||
export sonic_hwsku={{sonic_hwsku}}
|
||||
export debian_version=`cat $FILESYSTEM_ROOT/etc/debian_version`
|
||||
export kernel_version={{kversion}}
|
||||
j2 $BUILD_TEMPLATES/sysDescription.j2 > sysDescription
|
||||
sudo mv sysDescription $FILESYSTEM_ROOT/etc/ssw/
|
||||
|
||||
# Copy sudoers configuration file
|
||||
sudo cp $IMAGE_CONFIGS/sudoers/sudoers $FILESYSTEM_ROOT/etc/
|
||||
|
||||
# Copy vendor specific configuration files
|
||||
sudo cp -R $VENDOR_CONFIGS/{{sonic_hwsku}}/ $FILESYSTEM_ROOT/etc/ssw/
|
||||
|
||||
{% for deb in installer_debs.strip().split(' ') -%}
|
||||
sudo dpkg --extract {{deb}} $FILESYSTEM_ROOT
|
||||
{% endfor %}
|
||||
## Run depmod command for target kernel modules
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT depmod -a {{kversion}}
|
||||
{% endif %}
|
||||
{% if installer_images.strip() -%}
|
||||
{% for image in installer_images.strip().split(' ') -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker load < {{image}}
|
||||
{% endfor %}
|
||||
sudo chroot $FILESYSTEM_ROOT service docker stop
|
||||
{% for script in installer_start_scrips.split(' ') -%}
|
||||
sudo cp {{script}} $FILESYSTEM_ROOT/usr/bin/
|
||||
{% endfor %}
|
||||
{% for service in installer_services.split(' ') -%}
|
||||
sudo cp {{service}} $FILESYSTEM_ROOT/etc/systemd/system/
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT systemctl enable {{service}}
|
||||
{% endfor %}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT fuser -km /sys || true
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT umount -lf /sys
|
||||
{% endif %}
|
||||
|
13
files/build_templates/swss.service.j2
Normal file
13
files/build_templates/swss.service.j2
Normal file
@ -0,0 +1,13 @@
|
||||
[Unit]
|
||||
Description=orchagent container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
ExecStopPost=/usr/bin/syncd.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
29
files/build_templates/syncd.service.j2
Normal file
29
files/build_templates/syncd.service.j2
Normal file
@ -0,0 +1,29 @@
|
||||
[Unit]
|
||||
Description=syncd container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User=root
|
||||
{% if sonic_hwsku == 'ACS-MSN2700' %}
|
||||
ExecStartPre=/etc/init.d/sxdkernel start
|
||||
ExecStartPre=/usr/bin/mst start
|
||||
ExecStartPre=/etc/mlnx/msn2700 start
|
||||
{% elif sonic_hwsku == 'AS7512' %}
|
||||
ExecStartPre=-/etc/init.d/xpnet.sh stop
|
||||
ExecStartPre=/etc/init.d/xpnet.sh start
|
||||
{% endif %}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
{% if sonic_hwsku == 'ACS-MSN2700' %}
|
||||
ExecStopPost=/etc/mlnx/msn2700 stop
|
||||
ExecStopPost=/etc/init.d/sxdkernel stop
|
||||
ExecStopPost=/usr/bin/mst stop
|
||||
{% elif sonic_hwsku == 'AS7512' %}
|
||||
ExecStopPost=/etc/init.d/xpnet.sh stop
|
||||
ExecStopPost=/etc/init.d/xpnet.sh start
|
||||
{% endif %}
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
1
files/build_templates/sysDescription.j2
Normal file
1
files/build_templates/sysDescription.j2
Normal file
@ -0,0 +1 @@
|
||||
SONiC Software Version: SONiC-OS-{{git_revision}} HwSku: {{sonic_hwsku}} - Distribution: Debian {{debian_version}} - Kernel: {{kernel_version}}
|
12
files/build_templates/teamd.service.j2
Normal file
12
files/build_templates/teamd.service.j2
Normal file
@ -0,0 +1,12 @@
|
||||
[Unit]
|
||||
Description=TEAMD container
|
||||
Requires=database.service
|
||||
After=database.service
|
||||
|
||||
[Service]
|
||||
User={{ sonicadmin_user }}
|
||||
ExecStart=/usr/bin/{{docker_container_name}}.sh start
|
||||
ExecStop=/usr/bin/{{docker_container_name}}.sh stop
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
30
files/image_config/apt/sonic-dev.gpg.key
Normal file
30
files/image_config/apt/sonic-dev.gpg.key
Normal file
@ -0,0 +1,30 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
Version: GnuPG v1
|
||||
|
||||
mQENBFQ1bTIBCAC7oGfkv/ck0XsLuG8cdcSB2ISqxFAcBvH9BitEtxmpW2uhykKk
|
||||
xY4rVD/4Uys1s3PF1/64QfPR+hYcewueOwz0ZAcLyFXXk4McICXaPq3NrLiWYKKX
|
||||
UZLnrPzcrGZoW/kHDDp4OmBiDmT1PGvZlpuimwkMCusUzIr7Cbbp2dIy8MERL5tA
|
||||
LcgLu3KL6clJ+aTW2jgepI1D7sTepOeGd7eRSb5njKg2M7k/93v/7MipZxiVtyXH
|
||||
B74YiK6jSbst5JpuYsLa/Dqryvx7Xq3n53oif892pv3euTduo1fYw8Hgh/OOYdeT
|
||||
c9WCj03KA1jCSFURjdrug0kR8BPlfjqtRLXFABEBAAG0JE1TIE9wZW4gVGVjaCA8
|
||||
aW50ZXJvcEBtaWNyb3NvZnQuY29tPokBOAQTAQIAIgUCVDVtMgIbAwYLCQgHAwIG
|
||||
FQgCCQoLBBYCAwECHgECF4AACgkQsCxG30F6CJO1uAf/cmL68bM8YgF/61hkaY56
|
||||
LqrppUTJH/w4fKq47Pf6KfgSLvxfNU6soi2KHYRjIvTRx3tV4vUM5n2plaQg2s8V
|
||||
/Epg4FeIRTk75YwiHAzLhLnp5cdUaTvC4j4mwxoB6j9Ty+fXJwQ0MvpDhIZb9vM4
|
||||
GXw/fEQHCT4f3gx4nReeqE+FB2wVHleX9+Lpodu98JyJTKJRBRHYLqy6S+/lyp2W
|
||||
aBlsI1LOqBcx1uRK24U7duIpbYwIyrx0cafSruqR2GjVdu+imkhHyUn52VbzYhq1
|
||||
af0rqYiZ1VOamVOG0By8+hVyNa1MLc1K2uWGs0o5fDe9F5/swbvLHVXI+M50Vs+m
|
||||
J7kBDQRUNW0yAQgAu7DkTVj0ZQC4F7bFivAwrdby8gCakTXOl1kcK622hjRJ8nam
|
||||
aZeW+eADfLRsTmdUmXgZu1YWS5Gn2ZVngC8SGPUBT071+oRETCz4uNB7IimB9QfP
|
||||
++orI6o2vmnVVsq5wWCbEdNU+TCVv1zjrYev5lwckkKpjHt6o8MNoX2DFuQymSyR
|
||||
eZKaqhdKmcji4Ke7OIYqwgPjch3wxzE1b5gNOR/iwxWyjjOffZPLr/VhIfIJRs86
|
||||
dSXrwjHtEh810SKDLghHM0VAdY34nyC5ZZ61yhts5HtQDFK+9mNpH1mkc4gDBlgG
|
||||
266pVvknumK6lPNm/osF/cpjWmEw24ypcQIvOQARAQABiQEfBBgBAgAJBQJUNW0y
|
||||
AhsMAAoJELAsRt9BegiTMBUH/0sZ6gZy7mCTSAYT+NSXLFtGC2zNUVL80SWvfgYm
|
||||
k9XPVI22MrefZfQ6M01RylyxtWXjRM8UoN8SDKWPpXumzJf831f/7om5zwutaG7b
|
||||
tjDPYqRKJSbAIFZu2mN+uLrNQ2SV6XK7FoV0dtcrEX9S7RICb6i19D+70+Oh/qgU
|
||||
R04H1jqS29XBzqAlIzdBoA+sYAwbOIJsSL3YyNQcUv3B5+5yR/bo/L8pnUJt6iuL
|
||||
nWW+mi7r8gWPHDSrcdYq1TmmlOM7CwZPgWRZzkQPSeZz52Tt7IP47eyGJ09U4PIf
|
||||
FtMH1ElL2UgHoA/F9Q88e7LkztaTqE59uXWbIYyuSMJVvRU=
|
||||
=sb3d
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
@ -0,0 +1 @@
|
||||
deb http://debian-archive.trafficmanager.net/debian/ jessie main contrib non-free
|
@ -0,0 +1 @@
|
||||
deb [arch=amd64] http://packages.microsoft.com/repos/sonic-dev/ jessie main
|
1
files/image_config/environment/environment
Normal file
1
files/image_config/environment/environment
Normal file
@ -0,0 +1 @@
|
||||
VTYSH_PAGER=more
|
12
files/image_config/environment/motd
Normal file
12
files/image_config/environment/motd
Normal file
@ -0,0 +1,12 @@
|
||||
You are on
|
||||
____ ___ _ _ _ ____
|
||||
/ ___| / _ \| \ | (_)/ ___|
|
||||
\___ \| | | | \| | | |
|
||||
___) | |_| | |\ | | |___
|
||||
|____/ \___/|_| \_|_|\____|
|
||||
|
||||
-- Software for Open Networking In the Cloud --
|
||||
|
||||
Unauthorized access and/or use are prohibited.
|
||||
All access and/or use are subject to monitoring.
|
||||
|
11
files/image_config/interfaces/interfaces-config.service
Normal file
11
files/image_config/interfaces/interfaces-config.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Update interfaces configuration
|
||||
Before=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/interfaces-config.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
5
files/image_config/interfaces/interfaces-config.sh
Executable file
5
files/image_config/interfaces/interfaces-config.sh
Executable file
@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -t /etc/sonic/templates/interfaces.j2 >/etc/network/interfaces
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -t /etc/sonic/templates/vlan_interfaces.j2 >/etc/network/interfaces.d/vlan_interfaces
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -t /etc/sonic/templates/lag_interfaces.j2 >/etc/network/interfaces.d/lag_interfaces
|
50
files/image_config/interfaces/interfaces.j2
Normal file
50
files/image_config/interfaces/interfaces.j2
Normal file
@ -0,0 +1,50 @@
|
||||
#
|
||||
{% block banner %}
|
||||
# =========== Managed by config engine DO NOT EDIT! ========================
|
||||
# generated by templates/interfaces.j2 using sonic-cfggen
|
||||
# file: interfaces
|
||||
{% endblock %}
|
||||
#
|
||||
{% block loopback %}
|
||||
# The loopback network interface
|
||||
auto lo
|
||||
iface lo inet loopback
|
||||
# Use command 'ip addr list dev lo' to check all addresses
|
||||
{% for minigraph_lo_interface in minigraph_lo_interfaces %}
|
||||
iface lo {{ 'inet' if minigraph_lo_interface['addr'] | ipv4 else 'inet6' }} static
|
||||
address {{ minigraph_lo_interface['addr'] }}
|
||||
netmask {{ minigraph_lo_interface['mask'] }}
|
||||
#
|
||||
{% endfor %}
|
||||
{% endblock loopback %}
|
||||
#
|
||||
{% block mgmt_interface %}
|
||||
# The management network interface
|
||||
auto eth0
|
||||
{% if minigraph_mgmt_interface['addr'] %}
|
||||
iface eth0 inet static
|
||||
address {{ minigraph_mgmt_interface['addr'] }}
|
||||
netmask {{ minigraph_mgmt_interface['mask'] }}
|
||||
################ management network policy routing rules
|
||||
#### management port up rules"
|
||||
up ip route add default via {{ minigraph_mgmt_interface['gwaddr'] }} dev eth0 table default
|
||||
up ip rule add from {{ minigraph_mgmt_interface['addr'] }}/32 table default
|
||||
#### management port down rules"
|
||||
down ip route delete default via {{ minigraph_mgmt_interface['gwaddr'] }} dev eth0 table default
|
||||
down ip rule delete from {{ minigraph_mgmt_interface['addr'] }}/32 table default
|
||||
{# TODO: COPP policy type rules #}
|
||||
{% else %}
|
||||
iface eth0 inet dhcp
|
||||
{% endif %}
|
||||
{% endblock mgmt_interface %}
|
||||
#
|
||||
{% block front_panel_interface %}
|
||||
# The switch front panel interfaces
|
||||
{% for interface in minigraph_interfaces %}
|
||||
auto {{ interface['alias'] }}
|
||||
iface {{ interface['alias'] }} {{ 'inet' if interface['addr'] | ipv4 else 'inet6' }} static
|
||||
address {{ interface['addr'] }}
|
||||
netmask {{ interface['mask'] }}
|
||||
#
|
||||
{% endfor %}
|
||||
{% endblock front_panel_interface %}
|
20
files/image_config/interfaces/lag_interfaces.j2
Normal file
20
files/image_config/interfaces/lag_interfaces.j2
Normal file
@ -0,0 +1,20 @@
|
||||
#
|
||||
{% block banner %}
|
||||
# =========== Managed by config engine DO NOT EDIT! ========================
|
||||
# generated by templates/lag_interfaces.j2 using sonic-cfggen
|
||||
# file: lag_interfaces
|
||||
{% endblock %}
|
||||
#
|
||||
{% block lag_interface %}
|
||||
# The switch LAG interfaces
|
||||
{% for interface in minigraph_interfaces %}
|
||||
{% if 'PortChannel' in interface['alias'] %}
|
||||
auto {{ interface['name'] }}
|
||||
iface {{ interface['name'] }} {{ 'inet' if interface['addr'] | ipv4 else 'inet6' }} static
|
||||
address {{ interface['addr'] }}
|
||||
netmask {{ interface['mask'] }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endblock lag_interface %}
|
||||
#
|
||||
|
18
files/image_config/interfaces/vlan_interfaces.j2
Normal file
18
files/image_config/interfaces/vlan_interfaces.j2
Normal file
@ -0,0 +1,18 @@
|
||||
#
|
||||
{% block banner %}
|
||||
# =========== Managed by config engine DO NOT EDIT! ========================
|
||||
# generated by templates/interfaces.j2 using sonic-cfggen
|
||||
# file: vlan_interfaces
|
||||
{% endblock %}
|
||||
#
|
||||
{% block vlan_interface %}
|
||||
# The switch VLAN interfaces
|
||||
{% for interface in minigraph_vlan_interfaces %}
|
||||
auto {{ interface['name'] }}
|
||||
iface {{ interface['name'] }} {{ 'inet' if interface['addr'] | ipv4 else 'inet6' }} static
|
||||
bridge_ports {{ interface['members'] }}
|
||||
address {{ interface['addr'] }}
|
||||
netmask {{ interface['mask'] }}
|
||||
{% endfor %}
|
||||
{% endblock vlan_interface %}
|
||||
#
|
1043
files/image_config/minigraph/minigraph_ACS-MSN2700.xml
Normal file
1043
files/image_config/minigraph/minigraph_ACS-MSN2700.xml
Normal file
File diff suppressed because it is too large
Load Diff
1043
files/image_config/minigraph/minigraph_AS7512.xml
Normal file
1043
files/image_config/minigraph/minigraph_AS7512.xml
Normal file
File diff suppressed because it is too large
Load Diff
1043
files/image_config/minigraph/minigraph_Force10-S6000.xml
Normal file
1043
files/image_config/minigraph/minigraph_Force10-S6000.xml
Normal file
File diff suppressed because it is too large
Load Diff
11
files/image_config/ntp/ntp-config.service
Normal file
11
files/image_config/ntp/ntp-config.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Update NTP configuration
|
||||
Before=ntp.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/ntp-config.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
3
files/image_config/ntp/ntp-config.sh
Executable file
3
files/image_config/ntp/ntp-config.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -y /etc/sonic/ntp.yml -t /etc/sonic/templates/ntp.conf.j2 >/etc/ntp.conf
|
63
files/image_config/ntp/ntp.conf.j2
Normal file
63
files/image_config/ntp/ntp.conf.j2
Normal file
@ -0,0 +1,63 @@
|
||||
###############################################################################
|
||||
# Managed by Ansible
|
||||
# file: ansible/roles/acs/templates/ntp.conf.j2
|
||||
###############################################################################
|
||||
|
||||
# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help
|
||||
|
||||
driftfile /var/lib/ntp/ntp.drift
|
||||
|
||||
|
||||
# Enable this if you want statistics to be logged.
|
||||
#statsdir /var/log/ntpstats/
|
||||
|
||||
statistics loopstats peerstats clockstats
|
||||
filegen loopstats file loopstats type day enable
|
||||
filegen peerstats file peerstats type day enable
|
||||
filegen clockstats file clockstats type day enable
|
||||
|
||||
|
||||
# You do need to talk to an NTP server or two (or three).
|
||||
#server ntp.your-provider.example
|
||||
|
||||
# pool.ntp.org maps to about 1000 low-stratum NTP servers. Your server will
|
||||
# pick a different set every time it starts up. Please consider joining the
|
||||
# pool: <http://www.pool.ntp.org/join.html>
|
||||
{% for ntp_server in ntp_servers %}
|
||||
server {{ ntp_server }} iburst
|
||||
{% endfor %}
|
||||
|
||||
#only listen on localhost and eth0 ips (default is to listen on all ip addresses)
|
||||
interface ignore wildcard
|
||||
interface listen {{ minigraph_mgmt_interface.addr }}
|
||||
interface listen 127.0.0.1
|
||||
|
||||
# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
|
||||
# details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
|
||||
# might also be helpful.
|
||||
#
|
||||
# Note that "restrict" applies to both servers and clients, so a configuration
|
||||
# that might be intended to block requests from certain clients could also end
|
||||
# up blocking replies from your own upstream servers.
|
||||
|
||||
# By default, exchange time with everybody, but don't allow configuration.
|
||||
restrict -4 default kod notrap nomodify nopeer noquery
|
||||
restrict -6 default kod notrap nomodify nopeer noquery
|
||||
|
||||
# Local users may interrogate the ntp server more closely.
|
||||
restrict 127.0.0.1
|
||||
restrict ::1
|
||||
|
||||
# Clients from this (example!) subnet have unlimited access, but only if
|
||||
# cryptographically authenticated.
|
||||
#restrict 192.168.123.0 mask 255.255.255.0 notrust
|
||||
|
||||
|
||||
# If you want to provide time to your local subnet, change the next line.
|
||||
# (Again, the address is an example only.)
|
||||
#broadcast 192.168.123.255
|
||||
|
||||
# If you want to listen to time broadcasts on your local subnet, de-comment the
|
||||
# next lines. Please do this only if you trust everybody on the network!
|
||||
#disable auth
|
||||
#broadcastclient
|
6
files/image_config/ntp/ntp.yml
Normal file
6
files/image_config/ntp/ntp.yml
Normal file
@ -0,0 +1,6 @@
|
||||
ntp_servers:
|
||||
- 0.debian.pool.ntp.org
|
||||
- 1.debian.pool.ntp.org
|
||||
- 2.debian.pool.ntp.org
|
||||
- 3.debian.pool.ntp.org
|
||||
|
11
files/image_config/rsyslog/rsyslog-config.service
Normal file
11
files/image_config/rsyslog/rsyslog-config.service
Normal file
@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Update rsyslog configuration
|
||||
Before=rsyslog.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
ExecStart=/usr/bin/rsyslog-config.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
|
3
files/image_config/rsyslog/rsyslog-config.sh
Executable file
3
files/image_config/rsyslog/rsyslog-config.sh
Executable file
@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
sonic-cfggen -m /etc/sonic/minigraph.xml -y /etc/sonic/rsyslog.yml -t /etc/sonic/templates/rsyslog.conf.j2 >/etc/rsyslog.conf
|
71
files/image_config/rsyslog/rsyslog.conf.j2
Normal file
71
files/image_config/rsyslog/rsyslog.conf.j2
Normal file
@ -0,0 +1,71 @@
|
||||
###############################################################################
|
||||
# Managed by Ansible
|
||||
# file: ansible/roles/acs/templates/rsyslog.conf.j2
|
||||
###############################################################################
|
||||
#
|
||||
# /etc/rsyslog.conf Configuration file for rsyslog.
|
||||
#
|
||||
# For more information see
|
||||
# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
|
||||
|
||||
|
||||
#################
|
||||
#### MODULES ####
|
||||
#################
|
||||
|
||||
$ModLoad imuxsock # provides support for local system logging
|
||||
$ModLoad imklog # provides kernel logging support
|
||||
#$ModLoad immark # provides --MARK-- message capability
|
||||
|
||||
# provides UDP syslog reception
|
||||
$ModLoad imudp
|
||||
$UDPServerAddress 127.0.0.1 # bind to localhost before udp server run
|
||||
$UDPServerRun 514
|
||||
|
||||
# provides TCP syslog reception
|
||||
#$ModLoad imtcp
|
||||
#$InputTCPServerRun 514
|
||||
|
||||
|
||||
###########################
|
||||
#### GLOBAL DIRECTIVES ####
|
||||
###########################
|
||||
#Set remote syslog server
|
||||
{% for server in syslog_servers %}
|
||||
*.* @{{ server }}:514
|
||||
{% endfor %}
|
||||
|
||||
#
|
||||
# Use traditional timestamp format.
|
||||
# To enable high precision timestamps, comment out the following line.
|
||||
#
|
||||
#$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
|
||||
|
||||
# Define a custom template
|
||||
$template ACSFileFormat,"%TIMESTAMP% %HOSTNAME% %syslogseverity-text:::uppercase% %syslogtag%%msg:::sp-if-no-1st-sp%%msg:::drop-last-lf%\n"
|
||||
$ActionFileDefaultTemplate ACSFileFormat
|
||||
|
||||
#
|
||||
# Set the default permissions for all log files.
|
||||
#
|
||||
$FileOwner root
|
||||
$FileGroup adm
|
||||
$FileCreateMode 0640
|
||||
$DirCreateMode 0755
|
||||
$Umask 0022
|
||||
|
||||
#
|
||||
# Where to place spool and state files
|
||||
#
|
||||
$WorkDirectory /var/spool/rsyslog
|
||||
|
||||
#
|
||||
# Include all config files in /etc/rsyslog.d/
|
||||
#
|
||||
$IncludeConfig /etc/rsyslog.d/*.conf
|
||||
|
||||
|
||||
###############
|
||||
#### RULES ####
|
||||
###############
|
||||
|
46
files/image_config/rsyslog/rsyslog.d/00-acs.conf
Normal file
46
files/image_config/rsyslog/rsyslog.d/00-acs.conf
Normal file
@ -0,0 +1,46 @@
|
||||
## Quagga rules
|
||||
|
||||
if $programname == "zebra" then {
|
||||
/var/log/quagga/zebra.log
|
||||
stop
|
||||
}
|
||||
|
||||
if $programname == "bgpd" then {
|
||||
/var/log/quagga/bgpd.log
|
||||
stop
|
||||
}
|
||||
|
||||
if $programname == "quagga" then {
|
||||
/var/log/quagga/zebra.log
|
||||
stop
|
||||
}
|
||||
|
||||
if $programname == "watchquagga" then {
|
||||
/var/log/quagga/zebra.log
|
||||
stop
|
||||
}
|
||||
|
||||
## Platform modules rules
|
||||
if $programname == "platform-modules" then {
|
||||
/var/log/syslog
|
||||
stop
|
||||
}
|
||||
|
||||
## Sensord rules
|
||||
if $programname == "sensord" then {
|
||||
/var/log/syslog
|
||||
stop
|
||||
}
|
||||
|
||||
## Sswsyncd rules
|
||||
if $programname == "sswsyncd" then {
|
||||
/var/log/syslog
|
||||
stop
|
||||
}
|
||||
|
||||
## Ansible rules
|
||||
if $programname startswith "ansible" then {
|
||||
/var/log/messages
|
||||
stop
|
||||
}
|
||||
|
66
files/image_config/rsyslog/rsyslog.d/99-default.conf
Normal file
66
files/image_config/rsyslog/rsyslog.d/99-default.conf
Normal file
@ -0,0 +1,66 @@
|
||||
#
|
||||
# First some standard log files. Log by facility.
|
||||
#
|
||||
auth,authpriv.* /var/log/auth.log
|
||||
*.*;auth,authpriv.none -/var/log/syslog
|
||||
cron.* /var/log/cron.log
|
||||
daemon.* -/var/log/daemon.log
|
||||
kern.* -/var/log/kern.log
|
||||
kern.* -/var/persist/log/kern.log
|
||||
lpr.* -/var/log/lpr.log
|
||||
mail.* -/var/log/mail.log
|
||||
user.* -/var/log/user.log
|
||||
|
||||
#
|
||||
# Logging for the mail system. Split it up so that
|
||||
# it is easy to write scripts to parse these files.
|
||||
#
|
||||
mail.info -/var/log/mail.info
|
||||
mail.warn -/var/log/mail.warn
|
||||
mail.err /var/log/mail.err
|
||||
|
||||
#
|
||||
# Logging for INN news system.
|
||||
#
|
||||
news.crit /var/log/news/news.crit
|
||||
news.err /var/log/news/news.err
|
||||
news.notice -/var/log/news/news.notice
|
||||
|
||||
#
|
||||
# Some "catch-all" log files.
|
||||
#
|
||||
*.=debug;\
|
||||
auth,authpriv.none;\
|
||||
news.none;mail.none -/var/log/debug
|
||||
*.=info;*.=notice;*.=warn;\
|
||||
auth,authpriv.none;\
|
||||
cron,daemon.none;\
|
||||
mail,news.none -/var/log/messages
|
||||
*.=crit;*.=alert;*.=emerg -/var/persist/log/alarms
|
||||
#
|
||||
# Emergencies are sent to everybody logged in.
|
||||
#
|
||||
*.emerg :omusrmsg:*
|
||||
|
||||
#
|
||||
# I like to have messages displayed on the console, but only on a virtual
|
||||
# console I usually leave idle.
|
||||
#
|
||||
#daemon,mail.*;\
|
||||
# news.=crit;news.=err;news.=notice;\
|
||||
# *.=debug;*.=info;\
|
||||
# *.=notice;*.=warn /dev/tty8
|
||||
|
||||
# The named pipe /dev/xconsole is for the `xconsole' utility. To use it,
|
||||
# you must invoke `xconsole' with the `-file' option:
|
||||
#
|
||||
# $ xconsole -file /dev/xconsole [...]
|
||||
#
|
||||
# NOTE: adjust the list below, or you'll go crazy if you have a reasonably
|
||||
# busy site..
|
||||
#
|
||||
daemon.*;mail.*;\
|
||||
news.err;\
|
||||
*.=debug;*.=info;\
|
||||
*.=notice;*.=warn |/dev/xconsole
|
||||
|
1
files/image_config/rsyslog/rsyslog.yml
Normal file
1
files/image_config/rsyslog/rsyslog.yml
Normal file
@ -0,0 +1 @@
|
||||
syslog_servers: []
|
1
files/image_config/snmp/snmp.yml
Normal file
1
files/image_config/snmp/snmp.yml
Normal file
@ -0,0 +1 @@
|
||||
snmp_rocommunity: public
|
33
files/image_config/sudoers/sudoers
Normal file
33
files/image_config/sudoers/sudoers
Normal file
@ -0,0 +1,33 @@
|
||||
#
|
||||
# This file MUST be edited with the 'visudo' command as root.
|
||||
#
|
||||
# Please consider adding local content in /etc/sudoers.d/ instead of
|
||||
# directly modifying this file.
|
||||
#
|
||||
# See the man page for details on how to write a sudoers file.
|
||||
#
|
||||
Defaults env_reset
|
||||
#Defaults mail_badpass
|
||||
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
Defaults env_keep += "VTYSH_PAGER"
|
||||
|
||||
# Host alias specification
|
||||
|
||||
# User alias specification
|
||||
|
||||
# Cmnd alias specification
|
||||
# Note: bcmcmd is dangerous for users in read only netgroups because it may operate ASIC
|
||||
Cmnd_Alias READ_ONLY_CMDS = /usr/bin/portstat,\
|
||||
/usr/bin/vtysh -c "show.*"
|
||||
|
||||
# User privilege specification
|
||||
root ALL=(ALL:ALL) ALL
|
||||
|
||||
# Allow members of group sudo to execute any command
|
||||
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
|
||||
|
||||
|
||||
# See sudoers(5) for more information on "#include" directives:
|
||||
|
||||
#includedir /etc/sudoers.d
|
||||
|
@ -397,6 +397,10 @@ ${onie_bin} mount -t ext4 -o defaults,rw $demo_dev $demo_mnt || {
|
||||
# Decompress the file for the file system directly to the partition
|
||||
unzip $ONIE_INSTALLER_PAYLOAD -d $demo_mnt
|
||||
|
||||
if [ -f $demo_mnt/$FILESYSTEM_DOCKERFS ]; then
|
||||
cd $demo_mnt && tar xf $FILESYSTEM_DOCKERFS; cd $OLDPWD
|
||||
fi
|
||||
|
||||
# Store machine description in target file system
|
||||
cp /etc/machine.conf $demo_mnt
|
||||
|
||||
|
@ -18,5 +18,8 @@ FILESYSTEM_SQUASHFS=fs.squashfs
|
||||
## Filename for onie installer payload, will be the main part of onie installer
|
||||
ONIE_INSTALLER_PAYLOAD=fs.zip
|
||||
|
||||
## Filename for docker file system
|
||||
FILESYSTEM_DOCKERFS=dockerfs.tar.gz
|
||||
|
||||
## Output file name for onie installer
|
||||
OUTPUT_ONIE_IMAGE=target/sonic-$TARGET_MACHINE.bin
|
||||
|
0
platform/broadcom/platform.conf
Normal file
0
platform/broadcom/platform.conf
Normal file
@ -1,9 +1,8 @@
|
||||
include $(PLATFORM_GENERIC_PATH)/rules.mk
|
||||
|
||||
include $(PLATFORM_PATH)/sdk.mk
|
||||
include $(PLATFORM_PATH)/sai.mk
|
||||
include $(PLATFORM_PATH)/docker-orchagent-brcm.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-brcm.mk
|
||||
include $(PLATFORM_PATH)/single-image.mk
|
||||
|
||||
BCMCMD = bcmcmd
|
||||
$(BCMCMD)_URL = "https://sonicstorage.blob.core.windows.net/packages/bcmcmd?sv=2015-04-05&sr=b&sig=X3bFApmsNFmcnWM9mSGRxBugPcg%2FgJCHh5hhSuV1M2c%3D&se=2030-08-23T14%3A41%3A56Z&sp=r"
|
||||
@ -13,9 +12,7 @@ $(DSSERVE)_URL = "https://sonicstorage.blob.core.windows.net/packages/dsserve?sv
|
||||
|
||||
SONIC_ONLINE_FILES += $(BCMCMD) $(DSSERVE)
|
||||
|
||||
SONIC_ALL += $(DOCKER_SYNCD_BRCM) \
|
||||
$(DOCKER_ORCHAGENT_BRCM) \
|
||||
debs/$(BRCM_OPENNSL_KERNEL)
|
||||
SONIC_ALL += $(SONIC_SINGLE_IMAGE)
|
||||
|
||||
# Inject brcm sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(BRCM_OPENNSL) $(BRCM_SAI) $(BRCM_SAI_DEV)
|
||||
|
8
platform/broadcom/single-image.mk
Normal file
8
platform/broadcom/single-image.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# sonic mellanox single image installer
|
||||
|
||||
SONIC_SINGLE_IMAGE = sonic-broadcom.bin
|
||||
$(SONIC_SINGLE_IMAGE)_MACHINE = broadcom
|
||||
$(SONIC_SINGLE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_SINGLE_IMAGE)_DEPENDS += $(BRCM_OPENNSL_KERNEL)
|
||||
$(SONIC_SINGLE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_SINGLE_IMAGE)
|
0
platform/cavium/platform.conf
Normal file
0
platform/cavium/platform.conf
Normal file
@ -1,12 +1,10 @@
|
||||
include $(PLATFORM_GENERIC_PATH)/rules.mk
|
||||
|
||||
include $(PLATFORM_PATH)/cavm-sai.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-cavm.mk
|
||||
include $(PLATFORM_PATH)/docker-orchagent-cavm.mk
|
||||
include $(PLATFORM_PATH)/cavm_platform_modules.mk
|
||||
include $(PLATFORM_PATH)/single-image.mk
|
||||
|
||||
SONIC_ALL += $(DOCKER_SYNCD_CAVM) \
|
||||
$(DOCKER_ORCHAGENT_CAVM)
|
||||
SONIC_ALL += $(SONIC_SINGLE_IMAGE)
|
||||
|
||||
# Inject cavium sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(CAVM_SAI) $(CAVM_LIBSAI)
|
||||
|
8
platform/cavium/single-image.mk
Normal file
8
platform/cavium/single-image.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# sonic mellanox single image installer
|
||||
|
||||
SONIC_SINGLE_IMAGE = sonic-cavium.bin
|
||||
$(SONIC_SINGLE_IMAGE)_MACHINE = cavium
|
||||
$(SONIC_SINGLE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_SINGLE_IMAGE)_DEPENDS += $(CAVM_PLATFORM_DEB)
|
||||
$(SONIC_SINGLE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_SINGLE_IMAGE)
|
9
platform/generic/aboot-image.mk
Normal file
9
platform/generic/aboot-image.mk
Normal file
@ -0,0 +1,9 @@
|
||||
# sonic aboot installer
|
||||
|
||||
SONIC_GENERIC_ABOOT_IMAGE = sonic-aboot.bin
|
||||
$(SONIC_GENERIC_ABOOT_IMAGE)_MACHINE = aboot
|
||||
$(SONIC_GENERIC_ABOOT_IMAGE)_IMAGE_TYPE = aboot
|
||||
$(SONIC_GENERIC_ABOOT_IMAGE)_DEPENDS =
|
||||
$(SONIC_GENERIC_ABOOT_IMAGE)_DOCKERS =
|
||||
SONIC_INSTALLERS += $(SONIC_GENERIC_ABOOT_IMAGE)
|
||||
|
8
platform/generic/onie-image.mk
Normal file
8
platform/generic/onie-image.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# sonic generic ONIE image installer
|
||||
|
||||
SONIC_GENERIC_ONIE_IMAGE = sonic-generic.bin
|
||||
$(SONIC_GENERIC_ONIE_IMAGE)_MACHINE = generic
|
||||
$(SONIC_GENERIC_ONIE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_GENERIC_ONIE_IMAGE)_DEPENDS =
|
||||
$(SONIC_GENERIC_ONIE_IMAGE)_DOCKERS =
|
||||
SONIC_INSTALLERS += $(SONIC_GENERIC_ONIE_IMAGE)
|
0
platform/generic/platform.conf
Normal file
0
platform/generic/platform.conf
Normal file
@ -1,8 +1,10 @@
|
||||
include $(PLATFORM_PATH)/aboot-image.mk
|
||||
include $(PLATFORM_PATH)/onie-image.mk
|
||||
|
||||
SONIC_ALL += $(DOCKER_DATABASE) \
|
||||
$(DOCKER_FPM) \
|
||||
$(DOCKER_TEAMD) \
|
||||
$(DOCKER_LLDP_SV2) \
|
||||
$(DOCKER_SNMP_SV2) \
|
||||
$(DOCKER_PLATFORM_MONITOR) \
|
||||
$(DOCKER_DHCP_RELAY) \
|
||||
$(DOCKER_PTF)
|
||||
$(DOCKER_PTF) \
|
||||
$(SONIC_GENERIC_ONIE_IMAGE)
|
||||
|
@ -5,3 +5,13 @@ $(DOCKER_ORCHAGENT_MLNX)_PATH = $(DOCKERS_PATH)/docker-orchagent
|
||||
$(DOCKER_ORCHAGENT_MLNX)_DEPENDS += $(SWSS) $(REDIS_TOOLS)
|
||||
$(DOCKER_ORCHAGENT_MLNX)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_MLNX)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_ORCHAGENT_MLNX)
|
||||
|
||||
$(DOCKER_ORCHAGENT_MLNX)_CONTAINER_NAME = swss
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += --volumes-from database
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += -v /etc/ssw/:/etc/ssw/:ro
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += -v /etc/network/interfaces:/etc/network/interfaces:ro
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += -v /etc/network/interfaces.d/:/etc/network/interfaces.d/:ro
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += -v /host/machine.conf:/host/machine.conf
|
||||
$(DOCKER_ORCHAGENT_MLNX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -6,3 +6,10 @@ $(DOCKER_SYNCD_MLNX)_DEPENDS += $(SYNCD) $(MFT) $(PYTHON_SDK_API)
|
||||
$(DOCKER_SYNCD_MLNX)_FILES += $(MLNX_FW)
|
||||
$(DOCKER_SYNCD_MLNX)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SYNCD_MLNX)
|
||||
|
||||
$(DOCKER_SYNCD_MLNX)_CONTAINER_NAME = syncd
|
||||
$(DOCKER_SYNCD_MLNX)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SYNCD_MLNX)_RUN_OPT += -v /host/machine.conf:/etc/machine.conf
|
||||
$(DOCKER_SYNCD_MLNX)_RUN_OPT += --volumes-from database
|
||||
$(DOCKER_SYNCD_MLNX)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
0
platform/mellanox/platform.conf
Normal file
0
platform/mellanox/platform.conf
Normal file
@ -1,5 +1,3 @@
|
||||
include $(PLATFORM_GENERIC_PATH)/rules.mk
|
||||
|
||||
include $(PLATFORM_PATH)/sdk.mk
|
||||
include $(PLATFORM_PATH)/fw.mk
|
||||
include $(PLATFORM_PATH)/mft.mk
|
||||
@ -7,17 +5,9 @@ include $(PLATFORM_PATH)/mlnx-sai.mk
|
||||
include $(PLATFORM_PATH)/hw-management.mk
|
||||
include $(PLATFORM_PATH)/docker-syncd-mlnx.mk
|
||||
include $(PLATFORM_PATH)/docker-orchagent-mlnx.mk
|
||||
include $(PLATFORM_PATH)/single-image.mk
|
||||
|
||||
SONIC_ALL += $(DOCKER_SYNCD_MLNX) \
|
||||
$(DOCKER_ORCHAGENT_MLNX) \
|
||||
$(DOCKER_FPM) \
|
||||
$(DOCKER_DATABASE) \
|
||||
$(DOCKER_LLDP_SV2) \
|
||||
$(DOCKER_SNMP_SV2) \
|
||||
$(DOCKER_TEAMD) \
|
||||
$(DOCKER_PLATFORM_MONITOR) \
|
||||
debs/$(MLNX_HW_MANAGEMENT) \
|
||||
debs/$(SX_KERNEL)
|
||||
SONIC_ALL += $(SONIC_SINGLE_IMAGE)
|
||||
|
||||
# Inject mlnx sai into sairedis
|
||||
$(LIBSAIREDIS)_DEPENDS += $(MLNX_SAI)
|
||||
|
8
platform/mellanox/single-image.mk
Normal file
8
platform/mellanox/single-image.mk
Normal file
@ -0,0 +1,8 @@
|
||||
# sonic mellanox single image installer
|
||||
|
||||
SONIC_SINGLE_IMAGE = sonic-mellanox.bin
|
||||
$(SONIC_SINGLE_IMAGE)_MACHINE = mellanox
|
||||
$(SONIC_SINGLE_IMAGE)_IMAGE_TYPE = onie
|
||||
$(SONIC_SINGLE_IMAGE)_DEPENDS += $(SX_KERNEL) $(KERNEL_MFT) $(MFT) $(MLNX_HW_MANAGEMENT)
|
||||
$(SONIC_SINGLE_IMAGE)_DOCKERS += $(SONIC_INSTALL_DOCKER_IMAGES)
|
||||
SONIC_INSTALLERS += $(SONIC_SINGLE_IMAGE)
|
@ -5,3 +5,9 @@ $(DOCKER_DATABASE)_PATH = $(DOCKERS_PATH)/docker-database
|
||||
$(DOCKER_DATABASE)_DEPENDS += $(REDIS_SERVER) $(REDIS_TOOLS)
|
||||
$(DOCKER_DATABASE)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_DATABASE)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_DATABASE)
|
||||
|
||||
$(DOCKER_DATABASE)_CONTAINER_NAME = database
|
||||
$(DOCKER_DATABASE)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_DATABASE)_RUN_OPT += -v /var/run/redis
|
||||
|
||||
|
@ -5,3 +5,9 @@ $(DOCKER_FPM)_PATH = $(DOCKERS_PATH)/docker-fpm
|
||||
$(DOCKER_FPM)_DEPENDS += $(QUAGGA) $(SWSS) $(SONIC_CONFIG_ENGINE)
|
||||
$(DOCKER_FPM)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_FPM)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_FPM)
|
||||
|
||||
$(DOCKER_FPM)_CONTAINER_NAME = bgp
|
||||
$(DOCKER_FPM)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_FPM)_RUN_OPT += --volumes-from database
|
||||
$(DOCKER_FPM)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -6,3 +6,8 @@ $(DOCKER_LLDP_SV2)_DEPENDS += $(LLDPD) $(SONIC_CONFIG_ENGINE)
|
||||
$(DOCKER_LLDP_SV2)_PYTHON_WHEELS += $(DBSYNCD_PY2)
|
||||
$(DOCKER_LLDP_SV2)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_LLDP_SV2)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_LLDP_SV2)
|
||||
|
||||
$(DOCKER_LLDP_SV2)_CONTAINER_NAME = lldp
|
||||
$(DOCKER_LLDP_SV2)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_LLDP_SV2)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -6,3 +6,9 @@ $(DOCKER_SNMP_SV2)_DEPENDS += $(SNMP) $(SNMPD) $(SONIC_CONFIG_ENGINE)
|
||||
$(DOCKER_SNMP_SV2)_PYTHON_WHEELS += $(ASYNCSNMP_PY3)
|
||||
$(DOCKER_SNMP_SV2)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_SNMP_SV2)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_SNMP_SV2)
|
||||
|
||||
$(DOCKER_SNMP_SV2)_CONTAINER_NAME = snmp
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += -v /etc/ssw/:/etc/ssw/:ro
|
||||
$(DOCKER_SNMP_SV2)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -5,3 +5,8 @@ $(DOCKER_TEAMD)_PATH = $(DOCKERS_PATH)/docker-teamd
|
||||
$(DOCKER_TEAMD)_DEPENDS += $(SWSS) $(LIBTEAMDCT) $(LIBTEAM_UTILS) $(SONIC_CONFIG_ENGINE)
|
||||
$(DOCKER_TEAMD)_LOAD_DOCKERS += $(DOCKER_BASE)
|
||||
SONIC_DOCKER_IMAGES += $(DOCKER_TEAMD)
|
||||
SONIC_INSTALL_DOCKER_IMAGES += $(DOCKER_TEAMD)
|
||||
|
||||
$(DOCKER_TEAMD)_CONTAINER_NAME = teamd
|
||||
$(DOCKER_TEAMD)_RUN_OPT += --net=host --privileged -t
|
||||
$(DOCKER_TEAMD)_RUN_OPT += -v /etc/sonic:/etc/sonic:ro
|
||||
|
@ -1,6 +0,0 @@
|
||||
# sonic aboot installer
|
||||
|
||||
SONIC_ABOOT = sonic-aboot.bin
|
||||
$(SONIC_ABOOT)_MACHINE = aboot
|
||||
$(SONIC_ABOOT)_DEPENDS += $(LINUX_KERNEL) $(INITRAMFS_TOOLS) $(IGB_DRIVER)
|
||||
SONIC_INSTALLERS += $(SONIC_ABOOT)
|
@ -1,6 +0,0 @@
|
||||
# sonic generic installer
|
||||
|
||||
SONIC_GENERIC = sonic-generic.bin
|
||||
$(SONIC_GENERIC)_MACHINE = generic
|
||||
$(SONIC_GENERIC)_DEPENDS += $(LINUX_KERNEL) $(INITRAMFS_TOOLS) $(IGB_DRIVER)
|
||||
SONIC_INSTALLERS += $(SONIC_GENERIC)
|
62
slave.mk
62
slave.mk
@ -24,9 +24,9 @@ DEBS_PATH = $(TARGET_PATH)/debs
|
||||
PYTHON_WHEELS_PATH = $(TARGET_PATH)/python-wheels
|
||||
PROJECT_ROOT = $(shell pwd)
|
||||
|
||||
CONFIGURED_PLATFORM := $(shell [ -f .platform ] && cat .platform || echo undefined)
|
||||
CONFIGURED_PLATFORM := $(shell [ -f .platform ] && cat .platform || echo generic)
|
||||
CONFIGURED_SKU := $(shell [ -f .sku ] && cat .sku || echo undefined)
|
||||
PLATFORM_PATH = platform/$(CONFIGURED_PLATFORM)
|
||||
PLATFORM_GENERIC_PATH = platform/generic
|
||||
|
||||
###############################################################################
|
||||
## Utility rules
|
||||
@ -34,27 +34,38 @@ PLATFORM_GENERIC_PATH = platform/generic
|
||||
###############################################################################
|
||||
|
||||
.platform :
|
||||
ifneq ($(CONFIGURED_PLATFORM),generic)
|
||||
@echo Build system is not configured, please run make configure
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
.sku :
|
||||
ifneq ($(CONFIGURED_PLATFORM),generic)
|
||||
@echo Build system is not configured, please run make configure
|
||||
@exit 1
|
||||
endif
|
||||
|
||||
configure :
|
||||
@mkdir -p target/debs
|
||||
@mkdir -p target/python-wheels
|
||||
@echo $(PLATFORM) > .platform
|
||||
@echo $(SKU) > .sku
|
||||
|
||||
distclean : .platform clean
|
||||
@rm -f .platform
|
||||
distclean : .platform .sku clean
|
||||
@rm -f .platform .sku
|
||||
|
||||
###############################################################################
|
||||
## Include other rules
|
||||
###############################################################################
|
||||
|
||||
|
||||
include $(RULES_PATH)/config
|
||||
include $(RULES_PATH)/functions
|
||||
include $(RULES_PATH)/*.mk
|
||||
ifneq ($(CONFIGURED_PLATFORM), undefined)
|
||||
include $(PLATFORM_PATH)/rules.mk
|
||||
endif
|
||||
export CONFIGURED_SKU
|
||||
|
||||
MAKEFLAGS += -j $(SONIC_CONFIG_BUILD_JOBS)
|
||||
|
||||
@ -274,10 +285,47 @@ $(DOCKER_LOAD_TARGETS) : $(TARGET_PATH)/%.gz-load : .platform docker-start $$(TA
|
||||
###############################################################################
|
||||
|
||||
# targets for building installers with base image
|
||||
$(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : .platform $$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS))
|
||||
$(addprefix $(TARGET_PATH)/, $(SONIC_INSTALLERS)) : $(TARGET_PATH)/% : .platform $$(addprefix $(DEBS_PATH)/,$$($$*_DEPENDS)) $(addprefix $(DEBS_PATH)/,$(INITRAMFS_TOOLS) $(LINUX_KERNEL) $(IGB_DRIVER)) $(addprefix $(DEBS_PATH)/,$(SONIC_CONFIG_ENGINE)) $$(addprefix $(TARGET_PATH)/,$$($$*_DOCKERS))
|
||||
$(HEADER)
|
||||
## Pass initramfs and linux kernel explicitly. They are used for all platforms
|
||||
export initramfs_tools="$(DEBS_PATH)/$(INITRAMFS_TOOLS)"
|
||||
export linux_kernel="$(DEBS_PATH)/$(LINUX_KERNEL)"
|
||||
export kversion="$(KVERSION)"
|
||||
export installer_debs="$(addprefix $(DEBS_PATH)/,$($*_DEPENDS))"
|
||||
export installer_images="$(addprefix $(TARGET_PATH)/,$($*_DOCKERS))"
|
||||
export config_engine="$(addprefix $(DEBS_PATH)/,$(SONIC_CONFIG_ENGINE))"
|
||||
export image_type="$($*_IMAGE_TYPE)"
|
||||
export sonicadmin_user="$(USERNAME)"
|
||||
export sonic_hwsku="$(CONFIGURED_SKU)"
|
||||
$(foreach docker, $($*_DOCKERS),\
|
||||
export docker_image="$(docker)"
|
||||
export docker_image_name="$(basename $(docker))"
|
||||
export docker_container_name="$($(docker)_CONTAINER_NAME)"
|
||||
export docker_image_run_opt="$($(docker)_RUN_OPT)"
|
||||
j2 files/build_templates/docker_image_ctl.j2 > $($(docker)_CONTAINER_NAME).sh
|
||||
j2 files/build_templates/$($(docker)_CONTAINER_NAME).service.j2 > $($(docker)_CONTAINER_NAME).service
|
||||
chmod +x $($(docker)_CONTAINER_NAME).sh
|
||||
)
|
||||
|
||||
export installer_start_scrips="$(foreach docker, $($*_DOCKERS),$(addsuffix .sh, $($(docker)_CONTAINER_NAME)))"
|
||||
export installer_services="$(foreach docker, $($*_DOCKERS),$(addsuffix .service, $($(docker)_CONTAINER_NAME)))"
|
||||
|
||||
$(if $($*_DOCKERS),
|
||||
j2 files/build_templates/sonic_debian_extension.j2 > sonic_debian_extension.sh
|
||||
chmod +x sonic_debian_extension.sh,
|
||||
)
|
||||
|
||||
./build_debian.sh "$(USERNAME)" "$(shell perl -e 'print crypt("$(PASSWORD)", "salt"),"\n"')" $(LOG)
|
||||
TARGET_MACHINE=$($*_MACHINE) ./build_image.sh $(LOG)
|
||||
TARGET_MACHINE=$($*_MACHINE) IMAGE_TYPE=$($*_IMAGE_TYPE) ./build_image.sh $(LOG)
|
||||
|
||||
$(foreach docker, $($*_DOCKERS), \
|
||||
rm $($(docker)_CONTAINER_NAME).sh
|
||||
rm $($(docker)_CONTAINER_NAME).service
|
||||
)
|
||||
|
||||
$(if $($*_DOCKERS),
|
||||
rm sonic_debian_extension.sh,
|
||||
)
|
||||
$(FOOTER)
|
||||
|
||||
###############################################################################
|
||||
@ -326,4 +374,4 @@ all : .platform $$(addprefix $(TARGET_PATH)/,$$(SONIC_ALL))
|
||||
|
||||
.PHONY : $(SONIC_CLEAN_DEBS) $(SONIC_CLEAN_TARGETS) $(SONIC_CLEAN_WHEELS) clean distclean configure
|
||||
|
||||
.INTERMEDIATE : $(SONIC_INSTALL_TARGETS) $(SONIC_INSTALL_WHEELS) $(DOCKER_LOAD_TARGETS) docker-start
|
||||
.INTERMEDIATE : $(SONIC_INSTALL_TARGETS) $(SONIC_INSTALL_WHEELS) $(DOCKER_LOAD_TARGETS) docker-start .platform .sku
|
||||
|
1
src/sonic-config-engine/platform/AS7512/alias_map.json
Normal file
1
src/sonic-config-engine/platform/AS7512/alias_map.json
Normal file
@ -0,0 +1 @@
|
||||
#TODO: Add correct info here
|
1
src/sonic-config-engine/platform/AS7512/port_config.ini
Normal file
1
src/sonic-config-engine/platform/AS7512/port_config.ini
Normal file
@ -0,0 +1 @@
|
||||
# TODO: Add correct info here
|
1
src/sonic-config-engine/platform/AS7512/sensors.conf
Normal file
1
src/sonic-config-engine/platform/AS7512/sensors.conf
Normal file
@ -0,0 +1 @@
|
||||
# TODO: Add correct info here
|
Loading…
Reference in New Issue
Block a user