Commit 3a89ee4
committed
fix(upgrade): pin base image via pull-then-inspect and rebuild stale sandboxes (#1904)
Re-implements the digest pinning and upgrade-sandboxes features reverted
in #1938. The original PR (#1937) broke all e2e tests because it read a
digest from blueprint.yaml (belongs to ghcr.io/nvidia/openshell-community)
and applied it to ghcr.io/nvidia/nemoclaw/sandbox-base — a different
registry. Docker digests are repo-specific, so every pull returned
"manifest unknown".
This fix never reads blueprint.yaml for the base image digest. Instead:
- pullAndResolveBaseImageDigest() pulls sandbox-base:latest from GHCR
- docker inspect extracts the actual repo digest
- patchStagedDockerfile() pins ARG BASE_IMAGE to the inspected digest
The digest is self-consistent by construction — it always comes from the
same registry we pin to. Falls back to unpinned :latest when GHCR is
unreachable (offline/firewall users).
Also re-adds the upgrade-sandboxes command with fixes from code review:
- --auto flag for non-interactive installer contexts
- sandbox list failure handling before classifying sandboxes
- throwOnError option for sandboxRebuild to prevent process.exit in loops
Closes #1904
Signed-off-by: Test User <test@example.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>1 parent bb5fdb4 commit 3a89ee4
5 files changed
Lines changed: 514 additions & 6 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1265 | 1265 | | |
1266 | 1266 | | |
1267 | 1267 | | |
| 1268 | + | |
| 1269 | + | |
| 1270 | + | |
| 1271 | + | |
| 1272 | + | |
| 1273 | + | |
1268 | 1274 | | |
1269 | 1275 | | |
1270 | 1276 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
454 | 454 | | |
455 | 455 | | |
456 | 456 | | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
| 473 | + | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
457 | 499 | | |
458 | 500 | | |
459 | 501 | | |
| |||
991 | 1033 | | |
992 | 1034 | | |
993 | 1035 | | |
| 1036 | + | |
994 | 1037 | | |
995 | 1038 | | |
996 | 1039 | | |
997 | 1040 | | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
998 | 1047 | | |
999 | 1048 | | |
1000 | 1049 | | |
| |||
2734 | 2783 | | |
2735 | 2784 | | |
2736 | 2785 | | |
| 2786 | + | |
| 2787 | + | |
| 2788 | + | |
| 2789 | + | |
| 2790 | + | |
| 2791 | + | |
| 2792 | + | |
| 2793 | + | |
| 2794 | + | |
2737 | 2795 | | |
2738 | 2796 | | |
2739 | 2797 | | |
| |||
2745 | 2803 | | |
2746 | 2804 | | |
2747 | 2805 | | |
| 2806 | + | |
2748 | 2807 | | |
2749 | 2808 | | |
2750 | 2809 | | |
| |||
5468 | 5527 | | |
5469 | 5528 | | |
5470 | 5529 | | |
| 5530 | + | |
| 5531 | + | |
| 5532 | + | |
5471 | 5533 | | |
5472 | 5534 | | |
5473 | 5535 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
| |||
1601 | 1602 | | |
1602 | 1603 | | |
1603 | 1604 | | |
1604 | | - | |
| 1605 | + | |
1605 | 1606 | | |
1606 | 1607 | | |
1607 | 1608 | | |
1608 | 1609 | | |
1609 | 1610 | | |
1610 | 1611 | | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
1611 | 1619 | | |
1612 | 1620 | | |
1613 | 1621 | | |
1614 | | - | |
| 1622 | + | |
| 1623 | + | |
1615 | 1624 | | |
1616 | 1625 | | |
1617 | 1626 | | |
1618 | 1627 | | |
1619 | 1628 | | |
1620 | 1629 | | |
1621 | | - | |
| 1630 | + | |
| 1631 | + | |
1622 | 1632 | | |
1623 | 1633 | | |
1624 | 1634 | | |
| |||
1660 | 1670 | | |
1661 | 1671 | | |
1662 | 1672 | | |
1663 | | - | |
| 1673 | + | |
| 1674 | + | |
1664 | 1675 | | |
1665 | 1676 | | |
1666 | 1677 | | |
| |||
1679 | 1690 | | |
1680 | 1691 | | |
1681 | 1692 | | |
1682 | | - | |
| 1693 | + | |
| 1694 | + | |
1683 | 1695 | | |
1684 | 1696 | | |
1685 | 1697 | | |
| |||
1705 | 1717 | | |
1706 | 1718 | | |
1707 | 1719 | | |
1708 | | - | |
| 1720 | + | |
| 1721 | + | |
1709 | 1722 | | |
1710 | 1723 | | |
1711 | 1724 | | |
| |||
1813 | 1826 | | |
1814 | 1827 | | |
1815 | 1828 | | |
| 1829 | + | |
| 1830 | + | |
| 1831 | + | |
| 1832 | + | |
| 1833 | + | |
| 1834 | + | |
| 1835 | + | |
| 1836 | + | |
| 1837 | + | |
| 1838 | + | |
| 1839 | + | |
| 1840 | + | |
| 1841 | + | |
| 1842 | + | |
| 1843 | + | |
| 1844 | + | |
| 1845 | + | |
| 1846 | + | |
| 1847 | + | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
| 1851 | + | |
| 1852 | + | |
| 1853 | + | |
| 1854 | + | |
| 1855 | + | |
| 1856 | + | |
| 1857 | + | |
| 1858 | + | |
| 1859 | + | |
| 1860 | + | |
| 1861 | + | |
| 1862 | + | |
| 1863 | + | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
| 1867 | + | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
| 1889 | + | |
| 1890 | + | |
| 1891 | + | |
| 1892 | + | |
| 1893 | + | |
| 1894 | + | |
| 1895 | + | |
| 1896 | + | |
| 1897 | + | |
| 1898 | + | |
| 1899 | + | |
| 1900 | + | |
| 1901 | + | |
| 1902 | + | |
| 1903 | + | |
| 1904 | + | |
| 1905 | + | |
| 1906 | + | |
| 1907 | + | |
| 1908 | + | |
| 1909 | + | |
| 1910 | + | |
| 1911 | + | |
| 1912 | + | |
| 1913 | + | |
| 1914 | + | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
1816 | 1918 | | |
1817 | 1919 | | |
1818 | 1920 | | |
| |||
2033 | 2135 | | |
2034 | 2136 | | |
2035 | 2137 | | |
| 2138 | + | |
| 2139 | + | |
| 2140 | + | |
2036 | 2141 | | |
2037 | 2142 | | |
2038 | 2143 | | |
| |||
2098 | 2203 | | |
2099 | 2204 | | |
2100 | 2205 | | |
| 2206 | + | |
| 2207 | + | |
| 2208 | + | |
2101 | 2209 | | |
2102 | 2210 | | |
2103 | 2211 | | |
| |||
0 commit comments