diff options
| author | Daniil Baturin <daniil@vyos.io> | 2026-09-14 11:46:19 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-14 11:46:19 +0100 |
| commit | 7a5205d66cf20f2edff3e96d7e8d6f14d4f90df8 (patch) | |
| tree | a8bdd618f1cec84f06510ade3aaa8735d89f14e6 /scripts | |
| parent | 1bae4beea17f1228d4afe7007244584f3b885eac (diff) | |
| parent | 51313ee0f53b98dbb61d9774ebc6a11207a2b53f (diff) | |
| download | vyos-build-7a5205d66cf20f2edff3e96d7e8d6f14d4f90df8.tar.gz vyos-build-7a5205d66cf20f2edff3e96d7e8d6f14d4f90df8.zip | |
Merge pull request #1291 from c-po/image-size
T9277: image: further reduced installed and ISO image size
Diffstat (limited to 'scripts')
| -rwxr-xr-x | scripts/image-build/build-vyos-image | 16 | ||||
| -rwxr-xr-x | scripts/package-build/telegraf/build.sh | 41 | ||||
| -rw-r--r-- | scripts/package-build/telegraf/plugins/inputs/all/all.go | 72 | ||||
| -rw-r--r-- | scripts/package-build/telegraf/plugins/outputs/all/all.go | 9 |
4 files changed, 49 insertions, 89 deletions
diff --git a/scripts/image-build/build-vyos-image b/scripts/image-build/build-vyos-image index ea8d2f4c..00b63bfc 100755 --- a/scripts/image-build/build-vyos-image +++ b/scripts/image-build/build-vyos-image @@ -789,6 +789,22 @@ Pin-Priority: 600 for f in local_packages: shutil.copy(f, os.path.join(defaults.LOCAL_PACKAGES_PATH, os.path.basename(f))) + ## T9277: Debug packages are installed on purpose - placing a .deb into + ## packages/ is a deliberate act - but linux-image-*-dbg alone expands to + ## ~2.3 GB in the rootfs, so make the cost impossible to miss. + debug_packages = [f for f in local_packages + if re.search(r'-dbg(sym)?_', os.path.basename(f))] + if debug_packages: + print("W: " + "=" * 60) + print(f"W: Installing {len(debug_packages)} debug package(s) from packages/:") + for f in sorted(debug_packages): + size_mb = os.path.getsize(f) / (1024 * 1024) + print(f"W: {os.path.basename(f)} ({size_mb:.1f} MB deb)") + print("W: Debug symbols expand significantly in the rootfs and will") + print("W: noticeably increase the image size. Remove them from packages/") + print("W: if this was unintended.") + print("W: " + "=" * 60) + ## Build the image print("I: Starting image build") if debug: diff --git a/scripts/package-build/telegraf/build.sh b/scripts/package-build/telegraf/build.sh index 2ba511d0..09e6c1ca 100755 --- a/scripts/package-build/telegraf/build.sh +++ b/scripts/package-build/telegraf/build.sh @@ -1,5 +1,4 @@ #!/bin/sh -CWD=$(pwd) set -e BUILD_ARCH=$(dpkg-architecture -qDEB_TARGET_ARCH) @@ -10,18 +9,44 @@ if [ ! -d ${SRC} ]; then exit 1 fi -PLUGIN_DIR=${CWD}/plugins +# T9277: Only compile in the plugins that can actually be instantiated from the +# VyOS CLI. Telegraf ships ~240 inputs and ~60 outputs, which produces a 198 MB +# binary; the list below brings that down to about 28 MB. +# +# These names are the plugins referenced by the vyos-1x telegraf templates in +# data/templates/telegraf/. When a plugin is added there, it MUST be added here +# too, otherwise telegraf fails to start with an "unknown plugin" error. +TELEGRAF_INPUTS="chrony conntrack cpu disk diskio ethtool exec internal + interrupts kernel linux_sysctl_fs mem net netstat nstat + processes syslog system systemd_units" +TELEGRAF_OUTPUTS="azure_data_explorer http influxdb_v2 loki prometheus_client" +# "influx" backs [[inputs.exec]] data_format, "splunkmetric" backs the Splunk +# [[outputs.http]] data_format. +TELEGRAF_PARSERS="influx" +TELEGRAF_SERIALIZERS="splunkmetric" -echo "I: Selecting Input plugins" -cp ${PLUGIN_DIR}/inputs/all/all.go ${SRC}/plugins/inputs/all/all.go +# Telegraf selects plugins via Go build tags: the "custom" tag disables the +# compile-everything default, and every plugin is then opted back in by name. +BUILDTAGS="custom" +for plugin in ${TELEGRAF_INPUTS}; do + BUILDTAGS="${BUILDTAGS},inputs.${plugin}" +done +for plugin in ${TELEGRAF_OUTPUTS}; do + BUILDTAGS="${BUILDTAGS},outputs.${plugin}" +done +for plugin in ${TELEGRAF_PARSERS}; do + BUILDTAGS="${BUILDTAGS},parsers.${plugin}" +done +for plugin in ${TELEGRAF_SERIALIZERS}; do + BUILDTAGS="${BUILDTAGS},serializers.${plugin}" +done -echo "I: Selecting Output plugins" -cp ${PLUGIN_DIR}/outputs/all/all.go ${SRC}/plugins/outputs/all/all.go +echo "I: Selected plugins: ${BUILDTAGS}" echo "I: Build Debian ${BUILD_ARCH} package" cd ${SRC} export PATH=/opt/go/bin:$PATH # Generate default telegraf config -go run ./cmd/telegraf config > etc/telegraf.conf -LDFLAGS=-w make "${BUILD_ARCH}.deb" +go run -tags "${BUILDTAGS}" ./cmd/telegraf config > etc/telegraf.conf +make BUILDTAGS="${BUILDTAGS}" "${BUILD_ARCH}.deb" diff --git a/scripts/package-build/telegraf/plugins/inputs/all/all.go b/scripts/package-build/telegraf/plugins/inputs/all/all.go deleted file mode 100644 index 8265681b..00000000 --- a/scripts/package-build/telegraf/plugins/inputs/all/all.go +++ /dev/null @@ -1,72 +0,0 @@ -package all - -import ( - //Blank imports for plugins to register themselves - _ "github.com/influxdata/telegraf/plugins/inputs/azure_storage_queue" - _ "github.com/influxdata/telegraf/plugins/inputs/bond" - _ "github.com/influxdata/telegraf/plugins/inputs/cgroup" - _ "github.com/influxdata/telegraf/plugins/inputs/chrony" - _ "github.com/influxdata/telegraf/plugins/inputs/conntrack" - _ "github.com/influxdata/telegraf/plugins/inputs/cpu" - _ "github.com/influxdata/telegraf/plugins/inputs/disk" - _ "github.com/influxdata/telegraf/plugins/inputs/diskio" - _ "github.com/influxdata/telegraf/plugins/inputs/disque" - _ "github.com/influxdata/telegraf/plugins/inputs/dmcache" - _ "github.com/influxdata/telegraf/plugins/inputs/dns_query" - _ "github.com/influxdata/telegraf/plugins/inputs/docker" - _ "github.com/influxdata/telegraf/plugins/inputs/docker_log" - _ "github.com/influxdata/telegraf/plugins/inputs/ethtool" - _ "github.com/influxdata/telegraf/plugins/inputs/exec" - _ "github.com/influxdata/telegraf/plugins/inputs/execd" - _ "github.com/influxdata/telegraf/plugins/inputs/file" - _ "github.com/influxdata/telegraf/plugins/inputs/filecount" - _ "github.com/influxdata/telegraf/plugins/inputs/filestat" - _ "github.com/influxdata/telegraf/plugins/inputs/fireboard" - _ "github.com/influxdata/telegraf/plugins/inputs/hddtemp" - _ "github.com/influxdata/telegraf/plugins/inputs/hugepages" - _ "github.com/influxdata/telegraf/plugins/inputs/influxdb" - _ "github.com/influxdata/telegraf/plugins/inputs/influxdb_listener" - _ "github.com/influxdata/telegraf/plugins/inputs/influxdb_v2_listener" - _ "github.com/influxdata/telegraf/plugins/inputs/intel_pmu" - _ "github.com/influxdata/telegraf/plugins/inputs/intel_powerstat" - _ "github.com/influxdata/telegraf/plugins/inputs/intel_rdt" - _ "github.com/influxdata/telegraf/plugins/inputs/internal" - _ "github.com/influxdata/telegraf/plugins/inputs/internet_speed" - _ "github.com/influxdata/telegraf/plugins/inputs/interrupts" - _ "github.com/influxdata/telegraf/plugins/inputs/ipmi_sensor" - _ "github.com/influxdata/telegraf/plugins/inputs/ipset" - _ "github.com/influxdata/telegraf/plugins/inputs/iptables" - _ "github.com/influxdata/telegraf/plugins/inputs/ipvs" - _ "github.com/influxdata/telegraf/plugins/inputs/kernel" - _ "github.com/influxdata/telegraf/plugins/inputs/kernel_vmstat" - _ "github.com/influxdata/telegraf/plugins/inputs/mdstat" - _ "github.com/influxdata/telegraf/plugins/inputs/mem" - _ "github.com/influxdata/telegraf/plugins/inputs/net" - _ "github.com/influxdata/telegraf/plugins/inputs/netstat" - _ "github.com/influxdata/telegraf/plugins/inputs/nstat" - _ "github.com/influxdata/telegraf/plugins/inputs/ping" - _ "github.com/influxdata/telegraf/plugins/inputs/powerdns_recursor" - _ "github.com/influxdata/telegraf/plugins/inputs/processes" - _ "github.com/influxdata/telegraf/plugins/inputs/procstat" - _ "github.com/influxdata/telegraf/plugins/inputs/sensors" - _ "github.com/influxdata/telegraf/plugins/inputs/sflow" - _ "github.com/influxdata/telegraf/plugins/inputs/slab" - _ "github.com/influxdata/telegraf/plugins/inputs/smart" - _ "github.com/influxdata/telegraf/plugins/inputs/snmp" - _ "github.com/influxdata/telegraf/plugins/inputs/snmp_legacy" - _ "github.com/influxdata/telegraf/plugins/inputs/snmp_trap" - _ "github.com/influxdata/telegraf/plugins/inputs/socket_listener" - _ "github.com/influxdata/telegraf/plugins/inputs/socketstat" - _ "github.com/influxdata/telegraf/plugins/inputs/syslog" - _ "github.com/influxdata/telegraf/plugins/inputs/sysstat" - _ "github.com/influxdata/telegraf/plugins/inputs/system" - _ "github.com/influxdata/telegraf/plugins/inputs/systemd_units" - _ "github.com/influxdata/telegraf/plugins/inputs/tail" - _ "github.com/influxdata/telegraf/plugins/inputs/tcp_listener" - _ "github.com/influxdata/telegraf/plugins/inputs/temp" - _ "github.com/influxdata/telegraf/plugins/inputs/twemproxy" - _ "github.com/influxdata/telegraf/plugins/inputs/udp_listener" - _ "github.com/influxdata/telegraf/plugins/inputs/wireguard" - _ "github.com/influxdata/telegraf/plugins/inputs/wireless" - _ "github.com/influxdata/telegraf/plugins/inputs/x509_cert" -) diff --git a/scripts/package-build/telegraf/plugins/outputs/all/all.go b/scripts/package-build/telegraf/plugins/outputs/all/all.go deleted file mode 100644 index 49f7e63d..00000000 --- a/scripts/package-build/telegraf/plugins/outputs/all/all.go +++ /dev/null @@ -1,9 +0,0 @@ -package all - -import ( - //Blank imports for plugins to register themselves - _ "github.com/influxdata/telegraf/plugins/outputs/azure_data_explorer" - _ "github.com/influxdata/telegraf/plugins/outputs/http" - _ "github.com/influxdata/telegraf/plugins/outputs/influxdb_v2" - _ "github.com/influxdata/telegraf/plugins/outputs/prometheus_client" -) |
