Artifact Store Compatibility 1.32.x to 1.34.x
Problem Description
Armory CD 2.32.0 (OSS Spinnaker 1.32.0) introduced support for artifact storage with AWS S3. This feature compresses embedded/base64 artifacts to remote/base64 and uploads them to an AWS S3 bucket significantly reducing the artifact size in the execution context.
Armory CD 2.32.x (OSS Spinnaker 1.32.x) releases the Artifacts are stored in the following location in the artifact storage S3 bucket:
s3://bucket/ref://application/hash
Armory CD 2.34.x (OSS Spinnaker 1.34.0) onwards the location of the artifacts in the S3 artifact storage bucket changed to:
s3://bucket/application/hash
[!CAUTION]
This change of the artifact location in the S3 bucket breaks the Read operations when upgrading from Armory CD 2.32.x → 2.34.x and when downgrading from 2.34.x → 2.32.x
Workaround
To avoid any issues with reading the previously stored artifacts from the S3 bucket, an admin user can manually copy (or move) the location of the artifacts between versions.
When upgrading from 2.32.x
Copy the artifacts from the ref:// prefix location to the root location of the S3 bucket (remove the --dryrun argument when ready to execute)
aws s3 cp --recursive "s3://$ARTIFACT_STORE_BUCKET/ref://" "s3://$ARTIFACT_STORE_BUCKET" --include "*" --dryrunWhen downgrading from 2.34.x
Copy the artifacts from the root location to the ref:// location of the S3 bucket (remove the --dryrun argument when ready to execute)
Alternative you can use the following bash script by specifying the following arguments:
Artifact Store S3 bucket name
Target version of compatibility of your Armory CD installation
Dryrun (optional); defaults to true
Example Usage
Create a bash script with the above content and save it as
artifact-store-compatibility.shLog in to the AWS account in a terminal session
Execute the script with the appropriate arguments as described above
Verify the dryrun output and then rerun with the
dryrunargument set tofalseto execute the copy operation
Example: When upgrading from 2.32.x to 2.34.0
Example: When downgrading from 2.34.x to 2.32.0
Last updated
Was this helpful?