Title: ROX-33958: BusyBox-style binary consolidation for main image by janisz · Pull Request #19819 · stackrox/stackrox · GitHub
Open Graph Title: ROX-33958: BusyBox-style binary consolidation for main image by janisz · Pull Request #19819 · stackrox/stackrox
X Title: ROX-33958: BusyBox-style binary consolidation for main image by janisz · Pull Request #19819 · stackrox/stackrox
Description: Description Consolidate 8 separate binaries into a single binary using BusyBox-style dispatch pattern to reduce image size. Before: 1.93 GB After: 1.22 GB User-facing documentation CHANGELOG.md is updated OR update is not needed documentation PR is created and is linked above OR is not needed Testing and quality the change is production ready: the change is GA, or otherwise the functionality is gated by a feature flag CI results are inspected Automated testing added unit tests added e2e tests added regression tests added compatibility tests modified existing tests How I validated my change Used dive to verify the image content before and after: before dive quay.io/stackrox-io/main:latest Cmp Size Command drwxr-xr-x 0:0 1.1 GB ├── stackrox 0 B COPY /output/go/ /go/ # buildkit drwxr-xr-x 0:0 780 MB │ ├── bin 45 MB RUN |6 LABEL_VERSION=4.11.x-556-g118ca3cfff LABEL_RELEASE=4.11.x-556-g118ca3cfff QUAY_TAG_EXPIRATION=13w ROX_IM -rwxr-xr-x 0:0 179 MB │ │ ├── kubernetes-sensor 367 kB COPY /stackrox-data /stackrox/static-data # buildkit -rwxr-xr-x 0:0 122 MB │ │ ├── sensor-upgrader 732 kB COPY ./docs/api/v1/swagger.json /stackrox/static-data/docs/api/v1/swagger.json # buildkit -rwxr-xr-x 0:0 116 MB │ │ ├── compliance 167 kB COPY ./docs/api/v2/swagger.json /stackrox/static-data/docs/api/v2/swagger.json # buildkit -rwxr-xr-x 0:0 104 MB │ │ ├── admission-control 6.8 MB COPY THIRD_PARTY_NOTICES /THIRD_PARTY_NOTICES/ # buildkit -rwxr-xr-x 0:0 102 MB │ │ ├── roxagent 13 MB COPY ui /ui # buildkit -rwxr-xr-x 0:0 79 MB │ │ ├── migrator 276 MB COPY bin/central /stackrox/central # buildkit -rwxr-xr-x 0:0 78 MB │ │ └── config-controller 79 MB COPY bin/migrator /stackrox/bin/migrator # buildkit -rwxr-xr-x 0:0 276 MB │ ├── central 116 MB COPY bin/compliance /stackrox/bin/compliance # buildkit drwxr-xr-x 0:0 1.3 MB │ ├── static-data 179 MB COPY bin/kubernetes-sensor /stackrox/bin/kubernetes-sensor # buildkit drwxr-xr-x 0:0 899 kB │ │ ├── docs 122 MB COPY bin/sensor-upgrader /stackrox/bin/sensor-upgrader # buildkit drwxr-xr-x 0:0 899 kB │ │ │ └── api 104 MB COPY bin/admission-control /stackrox/bin/admission-control # buildkit drwxr-xr-x 0:0 732 kB │ │ │ ├── v1 78 MB COPY bin/config-controller /stackrox/bin/config-controller # buildkit -rw-r--r-- 0:0 732 kB │ │ │ │ └── swagger.json 102 MB COPY bin/roxagent /stackrox/bin/roxagent # buildkit drwxr-xr-x 0:0 167 kB │ │ │ └── v2 703 MB COPY bin/roxctl* /assets/downloads/cli/ # buildkit -rw-r--r-- 0:0 167 kB │ │ │ └── swagger.json 0 B RUN |6 LABEL_VERSION=4.11.x-556-g118ca3cfff LABEL_RELEASE=4.11.x-556-g118ca3cfff QUAY_TAG_EXPIRATION=13w ROX_IM drwxr-xr-x 0:0 367 kB │ │ └── external-networks -rw-r--r-- 0:0 367 kB │ │ └── external-networks.zip │ Layer Details ├────────────────────────────────────────────────────────────────────────────────────────────────────────── -rwxr-xr-x 0:0 1.3 kB │ ├── import-additional-cas -rw-r--r-- 0:0 980 B │ ├── debug Tags: (unavailable) -rwxr-xr-x 0:0 442 B │ ├── save-dir-contents Id: d71d201f5346e63e44b44200efc432333f4b291cf77c6403c9ea65789ef36e44 -rwxr-xr-x 0:0 260 B │ ├── restore-all-dir-contents Size: 0 B -rwxr-xr-x 0:0 222 B │ ├── start-central.sh Digest: sha256:9aa8ede612557418f6ff7e2ebdf69151b7f81f2d7e3cec495a5825391284e93f -rwxr-xr-x 0:0 131 B │ ├── entrypoint-wrapper.sh Command: -rwxr-xr-x 0:0 104 B │ ├── central-entrypoint.sh RUN |6 LABEL_VERSION=4.11.x-556-g118ca3cfff LABEL_RELEASE=4.11.x-556-g118ca3cfff QUAY_TAG_EXPIRATION=13w ROX_IMAGE_FLAVOR=o -rwxrwxrwx 0:0 0 B │ ├── admission-control → entrypoint-wrapper.sh pensource ROX_PRODUCT_BRANDING=STACKROX_BRANDING TARGET_ARCH=amd64 /bin/sh -c ln -s /assets/downloads/cli/roxctl-linux-${TA -rwxrwxrwx 0:0 0 B │ ├── compliance → entrypoint-wrapper.sh RGET_ARCH} /stackrox/roxctl && ln -s /assets/downloads/cli/roxctl-linux-amd64 /assets/downloads/cli/roxctl-linux # buil -rwxrwxrwx 0:0 0 B │ ├── config-controller → entrypoint-wrapper.sh dkit -rwxrwxrwx 0:0 0 B │ ├── kubernetes-sensor → entrypoint-wrapper.sh -rwxrwxrwx 0:0 0 B │ ├── roxctl → /assets/downloads/cli/roxctl-linux-amd64 -rwxrwxrwx 0:0 0 B │ └── sensor-upgrader → entrypoint-wrapper.sh drwxr-xr-x 0:0 703 MB ├── assets drwxr-xr-x 0:0 703 MB │ └── downloads drwxr-xr-x 0:0 703 MB │ └── cli -rwxr-xr-x 0:0 108 MB │ ├── roxctl-linux-s390x -rwxr-xr-x 0:0 102 MB │ ├── roxctl-windows-amd64.exe -rwxr-xr-x 0:0 102 MB │ ├── roxctl-darwin-amd64 -rwxr-xr-x 0:0 100 MB │ ├── roxctl-linux-ppc64le │ Image Details ├────────────────────────────────────────────────────────────────────────────────────────────────────────── -rwxr-xr-x 0:0 100 MB │ ├── roxctl-linux-amd64 -rwxr-xr-x 0:0 97 MB │ ├── roxctl-darwin-arm64 Image name: quay.io/stackrox-io/main:latest -rwxr-xr-x 0:0 94 MB │ ├── roxctl-linux-arm64 Total Image size: 1.9 GB -rwxrwxrwx 0:0 0 B │ └── roxctl-linux → /assets/downloads/cli/roxctl-linux-amd64 after: dive quay.io/stackrox-io/main:4.11.x-561-gc7378acbb9 │ Layers ├───────────────────────────────────────────────────────────────────────────────────────────────────────────────── Permission UID:GID Size Filetree Cmp Size Command drwxr-xr-x 0:0 707 MB ├── assets 105 MB FROM 95ae1c59332cae2 drwxr-xr-x 0:0 707 MB │ └── downloads 1.7 kB COPY signatures/RPM-GPG-KEY-CentOS-Official / # buildkit drwxr-xr-x 0:0 707 MB │ └── cli 3.5 kB COPY static-bin /stackrox/ # buildkit -rwxr-xr-x 0:0 109 MB │ ├── roxctl-linux-s390x 1.9 MB COPY /output/rpms/ /tmp/ # buildkit -rwxr-xr-x 0:0 102 MB │ ├── roxctl-windows-amd64.exe 0 B COPY /output/go/ /go/ # buildkit -rwxr-xr-x 0:0 102 MB │ ├── roxctl-darwin-amd64 45 MB RUN |6 LABEL_VERSION=4.11.x-593-gb54ecbf2f0 LABEL_RELEASE=4.11.x-593-gb54ecbf2f0 QUAY_TAG_EXPIRATION=13w ROX_IM -rwxr-xr-x 0:0 100 MB │ ├── roxctl-linux-ppc64le 368 kB COPY /stackrox-data /stackrox/static-data # buildkit -rwxr-xr-x 0:0 100 MB │ ├── roxctl-linux-amd64 732 kB COPY ./docs/api/v1/swagger.json /stackrox/static-data/docs/api/v1/swagger.json # buildkit -rwxr-xr-x 0:0 98 MB │ ├── roxctl-darwin-arm64 196 kB COPY ./docs/api/v2/swagger.json /stackrox/static-data/docs/api/v2/swagger.json # buildkit -rwxr-xr-x 0:0 95 MB │ ├── roxctl-linux-arm64 6.8 MB COPY THIRD_PARTY_NOTICES /THIRD_PARTY_NOTICES/ # buildkit -rwxrwxrwx 0:0 0 B │ └── roxctl-linux → /assets/downloads/cli/roxctl-linux-amd64 13 MB COPY ui /ui # buildkit drwxr-xr-x 0:0 357 MB ├── stackrox 356 MB COPY bin/central /stackrox/central # buildkit -rwxr-xr-x 0:0 356 MB │ ├── central 707 MB COPY bin/roxctl* /assets/downloads/cli/ # buildkit drwxr-xr-x 0:0 1.3 MB │ ├── static-data 0 B RUN |6 LABEL_VERSION=4.11.x-593-gb54ecbf2f0 LABEL_RELEASE=4.11.x-593-gb54ecbf2f0 QUAY_TAG_EXPIRATION=13w ROX_IM drwxr-xr-x 0:0 928 kB │ │ ├── docs drwxr-xr-x 0:0 928 kB │ │ │ └── api drwxr-xr-x 0:0 732 kB │ │ │ ├── v1 -rw-r--r-- 0:0 732 kB │ │ │ │ └── swagger.json drwxr-xr-x 0:0 196 kB │ │ │ └── v2 │ Layer Details ├────────────────────────────────────────────────────────────────────────────────────────────────────────── -rw-r--r-- 0:0 196 kB │ │ │ └── swagger.json drwxr-xr-x 0:0 368 kB │ │ └── external-networks Tags: (unavailable) -rw-r--r-- 0:0 368 kB │ │ └── external-networks.zip Id: 242e0f057d562d5cc32dbe24b6f792779d27cc93a3438773ed2dca2f9a03920a -rwxr-xr-x 0:0 1.3 kB │ ├── import-additional-cas Size: 0 B -rw-r--r-- 0:0 980 B │ ├── debug Digest: sha256:fee02da699dc4abe896e0a672410c18dd5e8cb7e83095edc5e11a168103a934b -rwxr-xr-x 0:0 442 B │ ├── save-dir-contents Command: -rwxr-xr-x 0:0 260 B │ ├── restore-all-dir-contents RUN |6 LABEL_VERSION=4.11.x-593-gb54ecbf2f0 LABEL_RELEASE=4.11.x-593-gb54ecbf2f0 QUAY_TAG_EXPIRATION=13w ROX_IMAGE_FLAVOR=o -rwxr-xr-x 0:0 222 B │ ├── start-central.sh pensource ROX_PRODUCT_BRANDING=STACKROX_BRANDING TARGET_ARCH=amd64 /bin/sh -c mkdir -p /stackrox/bin && ln -s /stackrox -rwxr-xr-x 0:0 131 B │ ├── entrypoint-wrapper.sh /central /stackrox/bin/migrator && ln -s /stackrox/central /stackrox/bin/compliance && ln -s /stackrox/central /sta -rwxr-xr-x 0:0 104 B │ ├── central-entrypoint.sh ckrox/bin/kubernetes-sensor && ln -s /stackrox/central /stackrox/bin/sensor-upgrader && ln -s /stackrox/central /st -rwxrwxrwx 0:0 0 B │ ├── admission-control → entrypoint-wrapper.sh ackrox/bin/admission-control && ln -s /stackrox/central /stackrox/bin/config-controller && ln -s /stackrox/central drwxr-xr-x 0:0 0 B │ ├── bin /stackrox/bin/roxagent && ln -s /stackrox/central /stackrox/roxctl && ln -s /assets/downloads/cli/roxctl-linux-amd6 -rwxrwxrwx 0:0 0 B │ │ ├── admission-control → /stackrox/central 4 /assets/downloads/cli/roxctl-linux # buildkit -rwxrwxrwx 0:0 0 B │ │ ├── compliance → /stackrox/central -rwxrwxrwx 0:0 0 B │ │ ├── config-controller → /stackrox/central -rwxrwxrwx 0:0 0 B │ │ ├── kubernetes-sensor → /stackrox/central -rwxrwxrwx 0:0 0 B │ │ ├── migrator → /stackrox/central -rwxrwxrwx 0:0 0 B │ │ ├── roxagent → /stackrox/central -rwxrwxrwx 0:0 0 B │ │ └── sensor-upgrader → /stackrox/central -rwxrwxrwx 0:0 0 B │ ├── compliance → entrypoint-wrapper.sh │ Image Details ├────────────────────────────────────────────────────────────────────────────────────────────────────────── -rwxrwxrwx 0:0 0 B │ ├── config-controller → entrypoint-wrapper.sh -rwxrwxrwx 0:0 0 B │ ├── kubernetes-sensor → entrypoint-wrapper.sh Image name: quay.io/stackrox-io/main:4.11.x-593-gb54ecbf2f0 -rwxrwxrwx 0:0 0 B │ ├── roxctl → /stackrox/central Total Image size: 1.2 GB -rwxrwxrwx 0:0 0 B │ └── sensor-upgrader → entrypoint-wrapper.sh
Open Graph Description: Description Consolidate 8 separate binaries into a single binary using BusyBox-style dispatch pattern to reduce image size. Before: 1.93 GB After: 1.22 GB User-facing documentation CHANGELOG.md...
X Description: Description Consolidate 8 separate binaries into a single binary using BusyBox-style dispatch pattern to reduce image size. Before: 1.93 GB After: 1.22 GB User-facing documentation CHANGELOG.md...
Opengraph URL: https://github.com/stackrox/stackrox/pull/19819
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/commits/:range(.:format) |
| route-controller | pull_requests |
| route-action | commits |
| fetch-nonce | v2:81f32262-7d01-bdd0-b796-e7b67805a4d3 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | D5A8:3495F0:1FFC341:2B8A126:6A65575A |
| html-safe-nonce | 771f8e8470bff18de5a1a53aa50de11beace1a79b37c65c09c2afa8e7d48a2ef |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJENUE4OjM0OTVGMDoxRkZDMzQxOjJCOEExMjY6NkE2NTU3NUEiLCJ2aXNpdG9yX2lkIjoiMTE5Mzg0NDI0MjU1MDk3MDIwMiIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 0111f80d006a37f98cfaaa4a696f7560ac6b374cd2c31ab3f8f2ef1c73cb9617 |
| hovercard-subject-tag | pull_request:3486146317 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/stackrox/stackrox/pull/19819/commits/4c25c5b5c6ee0584d2cdbcf6be0fd7f72f059059 |
| twitter:image | https://avatars.githubusercontent.com/u/1616386?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/1616386?s=400&v=4 |
| og:image:alt | Description Consolidate 8 separate binaries into a single binary using BusyBox-style dispatch pattern to reduce image size. Before: 1.93 GB After: 1.22 GB User-facing documentation CHANGELOG.md... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 52c76df668885aaff23b50bdca1fa1ea44ac9c1553e888ebc70ff1e4daa4625b |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/stackrox/stackrox git https://github.com/stackrox/stackrox.git |
| octolytics-dimension-user_id | 40638982 |
| octolytics-dimension-user_login | stackrox |
| octolytics-dimension-repository_id | 434017296 |
| octolytics-dimension-repository_nwo | stackrox/stackrox |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 434017296 |
| octolytics-dimension-repository_network_root_nwo | stackrox/stackrox |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 309153364422b3c499922d1a2a6404910a58ed8e |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width