mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-01-11 15:39:33 -05:00
Move image artifacts "/v1/" => "/constellation/v1" (#579)
This commit is contained in:
parent
9c405ceb02
commit
78481b32e8
@ -278,7 +278,7 @@ runs:
|
||||
env:
|
||||
basePath: ${{ inputs.basePath }}
|
||||
run: |
|
||||
echo "bucket=cdn-confidential-cloud-backend" >> $GITHUB_OUTPUT
|
||||
echo "bucket=cdn-constellation-backend" >> $GITHUB_OUTPUT
|
||||
echo "baseUrl=https://cdn.confidential.cloud" >> $GITHUB_OUTPUT
|
||||
echo "imagePath=${basePath}/mkosi.output.qemu/fedora~36/image.raw" >> $GITHUB_OUTPUT
|
||||
echo "jsonOutput=${basePath}/mkosi.output.qemu/fedora~36/image-upload.json" >> $GITHUB_OUTPUT
|
||||
|
8
.github/workflows/build-os-image.yml
vendored
8
.github/workflows/build-os-image.yml
vendored
@ -500,7 +500,7 @@ jobs:
|
||||
run: |
|
||||
aws s3 cp \
|
||||
"pcrs-${{ matrix.csp }}.json" \
|
||||
"s3://cdn-confidential-cloud-backend/v1/measurements/${{ needs.build-settings.outputs.imageVersionUid }}/${{ matrix.csp }}/measurements.image.json" \
|
||||
"s3://cdn-constellation-backend/constellation/v1/measurements/${{ needs.build-settings.outputs.imageVersionUid }}/${{ matrix.csp }}/measurements.image.json" \
|
||||
--no-progress
|
||||
|
||||
generate-sbom:
|
||||
@ -615,7 +615,7 @@ jobs:
|
||||
for file in ${sboms} ${manifests} ${hashes}; do
|
||||
aws s3 cp \
|
||||
"${file}" \
|
||||
"s3://cdn-confidential-cloud-backend/v1/sbom/${{ needs.build-settings.outputs.imageVersionUid }}/${file}" \
|
||||
"s3://cdn-constellation-backend/constellation/v1/sbom/${{ needs.build-settings.outputs.imageVersionUid }}/${file}" \
|
||||
--no-progress
|
||||
done
|
||||
|
||||
@ -654,6 +654,6 @@ jobs:
|
||||
run: |
|
||||
aws s3 cp \
|
||||
"${{ needs.build-settings.outputs.imageVersionUid }}.json" \
|
||||
"s3://cdn-confidential-cloud-backend/v1/images/${{ needs.build-settings.outputs.imageVersionUid }}.json" \
|
||||
"s3://cdn-constellation-backend/constellation/v1/images/${{ needs.build-settings.outputs.imageVersionUid }}.json" \
|
||||
--no-progress
|
||||
echo -e "- [Lookup table](https://cdn.confidential.cloud/v1/images/${{ needs.build-settings.outputs.imageVersionUid }}.json)" >> "$GITHUB_STEP_SUMMARY"
|
||||
echo -e "- [Lookup table](https://cdn.confidential.cloud/constellation/v1/images/${{ needs.build-settings.outputs.imageVersionUid }}.json)" >> "$GITHUB_STEP_SUMMARY"
|
||||
|
@ -246,7 +246,7 @@ upload/upload_azure.sh -g --disk-name "${AZURE_DISK_NAME}" "${AZURE_VMGS_PATH}"
|
||||
```sh
|
||||
# set these variables
|
||||
export IMAGE_VERSION_UID= # e.g. "test123" or "v2.1.0"
|
||||
export QEMU_BUCKET=cdn-confidential-cloud-backend
|
||||
export QEMU_BUCKET=cdn-constellation-backend
|
||||
export QEMU_BASE_URL="https://cdn.confidential.cloud"
|
||||
export QEMU_IMAGE_PATH=${PWD}/mkosi.output.qemu/fedora~36/image.raw
|
||||
export QEMU_JSON_OUTPUT=${PWD}/mkosi.output.qemu/fedora~36/image-upload.json
|
||||
|
@ -11,9 +11,9 @@ if [[ -z ${CONFIG_FILE-} ]] && [[ -f ${CONFIG_FILE-} ]]; then
|
||||
. "${CONFIG_FILE}"
|
||||
fi
|
||||
|
||||
aws s3 cp "${QEMU_IMAGE_PATH}" "s3://${QEMU_BUCKET}/v1/raw/${IMAGE_VERSION_UID}/qemu/image.raw" --no-progress
|
||||
aws s3 cp "${QEMU_IMAGE_PATH}" "s3://${QEMU_BUCKET}/constellation/v1/raw/${IMAGE_VERSION_UID}/qemu/image.raw" --no-progress
|
||||
|
||||
image_url="${QEMU_BASE_URL}/v1/raw/${IMAGE_VERSION_UID}/qemu/image.raw"
|
||||
image_url="${QEMU_BASE_URL}/constellation/v1/raw/${IMAGE_VERSION_UID}/qemu/image.raw"
|
||||
|
||||
json=$(jq -ncS \
|
||||
--arg image_url "${image_url}" \
|
||||
|
@ -74,20 +74,20 @@ Where applicable, the API uses the following CSP names:
|
||||
|
||||
The following HTTP endpoints are available:
|
||||
|
||||
- `GET /v1/images/<image version uid>.json` returns the lookup table for the given `image version uid`.
|
||||
- `GET /v1/measurements/<image version uid>/<csp>/` contains files with measurements and signatures for the given `image version uid` and CSP.
|
||||
- `GET /constellation/v1/images/<image version uid>.json` returns the lookup table for the given `image version uid`.
|
||||
- `GET /constellation/v1/measurements/<image version uid>/<csp>/` contains files with measurements and signatures for the given `image version uid` and CSP.
|
||||
- `measurements.json` contains the final measurements for the given `image version uid` and CSP.
|
||||
- `measurements.json.sig` returns the signature of the measurements file.
|
||||
- `measurements.image.json` returns the measurements generated statically from the image.
|
||||
- `GET /v1/raw/<image version uid>/<csp>/image.raw` returns the raw image for the given `image version uid` and CSP.
|
||||
- `GET /v1/sbom/<image version uid>/` contains SBOM files for the given `image version uid`. The exact formats and file names are TBD.
|
||||
- `GET /constellation/v1/raw/<image version uid>/<csp>/image.raw` returns the raw image for the given `image version uid` and CSP.
|
||||
- `GET /constellation/v1/sbom/<image version uid>/` contains SBOM files for the given `image version uid`. The exact formats and file names are TBD.
|
||||
|
||||
## Image lookup table
|
||||
|
||||
The image lookup table is a JSON file that maps the `image version uid` to the CSP-specific image references. It uses the `image version uid` as file name.
|
||||
|
||||
```
|
||||
s3://<BUCKET-NAME>/v1/images/<IMAGE-VERSION-UID>.json
|
||||
s3://<BUCKET-NAME>/constellation/v1/images/<IMAGE-VERSION-UID>.json
|
||||
```
|
||||
|
||||
```json
|
||||
@ -105,7 +105,7 @@ s3://<BUCKET-NAME>/v1/images/<IMAGE-VERSION-UID>.json
|
||||
"sev-es": "gcp-image-123"
|
||||
},
|
||||
"qemu": {
|
||||
"default": "https://cdn.confidential.cloud/v1/raw/v2.2.0/qemu/image.raw"
|
||||
"default": "https://cdn.confidential.cloud/constellation/v1/raw/v2.2.0/qemu/image.raw"
|
||||
}
|
||||
}
|
||||
```
|
||||
@ -126,9 +126,9 @@ The format of the image measurements is described in the [secure software distri
|
||||
The image measurements are stored in a folder structure in S3 that is organized by CSP and `image version uid`.
|
||||
|
||||
```
|
||||
s3://<BUCKET-NAME>/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.json
|
||||
s3://<BUCKET-NAME>/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.json.sig
|
||||
s3://<BUCKET-NAME>/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.image.json
|
||||
s3://<BUCKET-NAME>/constellation/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.json
|
||||
s3://<BUCKET-NAME>/constellation/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.json.sig
|
||||
s3://<BUCKET-NAME>/constellation/v1/measurements/<CSP>/<IMAGE-VERSION-UID>/measurements.image.json
|
||||
```
|
||||
|
||||
## CLI image discovery
|
||||
@ -143,7 +143,7 @@ The `image` field is independent of the CSP and is a used to discover the CSP-sp
|
||||
The CLI can find a CSP- and region specific image reference by looking up the `image version uid` in the following order:
|
||||
|
||||
- if a local file `<IMAGE-VERSION-UID>.json` exists, use the lookup table in that file
|
||||
- otherwise, load the image lookup table from a well known URL (e.g. `https://cdn.confidential.cloud/v1/images/<IMAGE-VERSION-UID>.json`) and use the lookup table in that file
|
||||
- otherwise, load the image lookup table from a well known URL (e.g. `https://cdn.confidential.cloud/constellation/v1/images/<IMAGE-VERSION-UID>.json`) and use the lookup table in that file
|
||||
- choose the CSP-specific image reference for the current region and security type:
|
||||
- On AWS, use the AMI ID for the current region (e.g. `.aws.us-east-1`)
|
||||
- On Azure, use the image ID for the security type (CVM or Trusted Launch) (e.g. `.azure.cvm`)
|
||||
|
Loading…
Reference in New Issue
Block a user