releng: workaround awscli breaking garage by changing checksum algo
We use https://garagehq.deuxfleurs.fr for https://docs.lix.systems, https://releases.lix.systems, https://cache.lix.systems. It's generally great, but AWS doesn't, erm, care, about other implementations and broke their client library. We already ran into https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/824, which was mitigated by a garage upgrade to create a new error. These bugs were what got us: - https://github.com/boto/boto3/issues/4392 - https://github.com/aws/aws-cli/issues/9214 Error: upload failed: release/manual/.nojekyll to s3://docs/manual/lix/nightly/.nojekyll An error occurred (InvalidRequest) when calling the PutObject operation: Bad request: invalid checksum algorithm The missing checksum algorithm is CRC32NVME, with a bug filed here: https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/963 Change-Id: Ib78a89034bf0f2a6773fc505a347b2aadb775e93
This commit is contained in:
@@ -32,6 +32,9 @@ RELENG_MSG = "Release created with releng/create_release.xsh"
|
||||
BUILD_CORES = 16
|
||||
MAX_JOBS = 2
|
||||
|
||||
# Workaround for bug in garage: https://git.deuxfleurs.fr/Deuxfleurs/garage/issues/963
|
||||
S3_ARGS = ['--checksum-algorithm=SHA256']
|
||||
|
||||
|
||||
def setup_creds(env: RelengEnvironment):
|
||||
key = keys.get_ephemeral_key(env)
|
||||
@@ -237,7 +240,7 @@ def upload_artifacts(env: RelengEnvironment, noconfirm=False, no_check_git=False
|
||||
docker.upload_docker_images(target, docker_images)
|
||||
|
||||
print('[+] Upload to release bucket')
|
||||
aws s3 cp --recursive @(ARTIFACTS)/ @(env.releases_bucket)/
|
||||
aws s3 cp @(S3_ARGS) --recursive @(ARTIFACTS)/ @(env.releases_bucket)/
|
||||
print('[+] Upload manual')
|
||||
upload_manual(env)
|
||||
|
||||
@@ -284,9 +287,9 @@ def upload_manual(env: RelengEnvironment):
|
||||
version = 'nightly'
|
||||
|
||||
print('[+] aws s3 sync manual')
|
||||
aws s3 sync --delete @(MANUAL)/ @(env.docs_bucket)/manual/lix/@(version)/
|
||||
aws s3 sync @(S3_ARGS) --delete @(MANUAL)/ @(env.docs_bucket)/manual/lix/@(version)/
|
||||
if OFFICIAL_RELEASE:
|
||||
aws s3 sync --delete @(MANUAL)/ @(env.docs_bucket)/manual/lix/stable/
|
||||
aws s3 sync @(S3_ARGS) --delete @(MANUAL)/ @(env.docs_bucket)/manual/lix/stable/
|
||||
|
||||
|
||||
def build_artifacts(build_profile, no_check_git=False):
|
||||
|
||||
Reference in New Issue
Block a user