constellation/.github/actions/e2e_verify/action.yml

44 lines
1.6 KiB
YAML
Raw Normal View History

name: Constellation verify
description: "Verify a Constellation cluster."
inputs:
osImage:
description: "The OS image used in the cluster."
required: true
cloudProvider:
description: "The cloud provider used in the cluster."
required: true
runs:
using: "composite"
steps:
- name: Clear current measurements
shell: bash
run: |
yq -i 'del(.provider.${{ inputs.cloudProvider }}.measurements)' constellation-conf.yaml
- name: Expand version path
id: expand-version
uses: ./.github/actions/shortname
with:
shortname: ${{ inputs.osImage }}
- name: Fetch & write measurements
shell: bash
run: |
ref=${{ steps.expand-version.outputs.ref }}
stream=${{ steps.expand-version.outputs.stream }}
version=${{ steps.expand-version.outputs.version }}
verPath="ref/${ref}/stream/${stream}/${version}"
MEASUREMENTS=$(curl -fsSL https://cdn.confidential.cloud/constellation/v1/${verPath}/image/csp/${{ inputs.cloudProvider }}/measurements.json | jq '.measurements' -r)
for key in $(echo $MEASUREMENTS | jq 'keys[]' -r); do
echo Updating $key to $(echo $MEASUREMENTS | jq ".\"$key\"" -r)
yq -i ".provider.${{ inputs.cloudProvider }}.measurements.[$key] = $(echo $MEASUREMENTS | jq ".\"$key\"")" constellation-conf.yaml
done
yq -i '.provider.${{ inputs.cloudProvider }}.measurements |= array_to_map' constellation-conf.yaml
cat constellation-conf.yaml
- name: Constellation verify
shell: bash
run: constellation verify --cluster-id $(jq -r ".clusterID" constellation-id.json) --force