For the complete documentation index, see llms.txt. This page is also available as Markdown.

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 "*"  --dryrun

When 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

  1. Create a bash script with the above content and save it as artifact-store-compatibility.sh

  2. Log in to the AWS account in a terminal session

  3. Execute the script with the appropriate arguments as described above

  4. Verify the dryrun output and then rerun with the dryrun argument set to false to 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?