nvidia-container-toolkit/scripts/hotfix-patch.md
Evan Lezar 7ebec3667f [no-relnote] Add instructions to produce a once-off build
Signed-off-by: Evan Lezar <elezar@nvidia.com>
2024-10-23 22:05:55 +02:00

104 lines
2.4 KiB
Markdown

# Patching a release
```
source ./scripts/utils.sh
export REFERENCE=main
```
```
SHA=$(git rev-parse --short=8 ${REFERENCE})
IMAGE_NAME="ghcr.io/nvidia/container-toolkit"
IMAGE_TAG=${SHA}-packaging
VERSION=$(get_version_from_image ${IMAGE_NAME}:${IMAGE_TAG} ${SHA})
PACKAGE_CACHE=release-${VERSION}-patch-$(git rev-parse --short=8 HEAD)
```
```
./hack/pull-packages.sh \
${IMAGE_NAME}:${IMAGE_TAG} \
${PACKAGE_CACHE}
```
1. Build the required components:
```
export DIST_DIR=$(pwd)/${PACKAGE_CACHE}/packages
./scripts/build-packages.sh ${TARGETS}
```
Where `${TARGETS}` is any combination of:
- `ubuntu18.04-arm64`
- `ubuntu18.04-amd64`
- `ubuntu18.04-ppc64le`
- `centos7-aarch64`
- `centos7-x86_64`
- `centos8-ppc64le`
The `ppc64le` targets are generally not covered by QA, and something like:
```
./scripts/build-packages.sh ubuntu18.04-amd64 ubuntu18.04-arm64 centos7-x86_64 centos7-aarch64
```
Should be sufficient.
1. Patch the container-toolkit images:
1. The packaging image:
```
BUILD_MULTI_ARCH_IMAGES=true \
ARTIFACTS_ROOT=${PACKAGE_CACHE}/packages \
VERSION=$(git rev-parse --short=8 HEAD) \
make -f deployments/container/Makefile build-packaging
```
The other images:
```
BUILD_MULTI_ARCH_IMAGES=true \
ARTIFACTS_ROOT=${PACKAGE_CACHE}/packages \
VERSION=$(git rev-parse --short=8 HEAD) \
make -f deployments/container/Makefile build-ubuntu20.04
```
```
BUILD_MULTI_ARCH_IMAGES=true \
ARTIFACTS_ROOT=${PACKAGE_CACHE}/packages \
VERSION=$(git rev-parse --short=8 HEAD) \
make -f deployments/container/Makefile build-ubi8
```
Note that even though the other packages were not updated we still regenearate
both images so as to ensure consistent image versioning.
1. Push the updated packages to the kitmaker repository:
```
export ARTIFACTS_DIR=$(pwd)/release-${VERSION}-patch-$(git rev-parse --short=8 HEAD)-artifacts
```
```
./scripts/extract-packages.sh nvidia/container-toolkit:$(git rev-parse --short=8 HEAD)-packaging
```
```
./scripts/release-kitmaker-artifactory.sh \
"https://urm.nvidia.com/artifactory/sw-gpu-cloudnative-generic-local/kitmaker"
```
```
regctl login nvcr.io -u \$oauthtoken
```
```
BUILD_MULTI_ARCH_IMAGES=true \
ARTIFACTS_ROOT=${PACKAGE_CACHE}/packages \
VERSION=$(git rev-parse --short=8 HEAD) \
OUT_IMAGE_NAME=nvcr.io/ea-cnt/nv_only/container-toolkit \
make -f deployments/container/Makefile push-ubuntu20.04
```