Skip to content

Commit a1b6508

Browse files
committed
coco: add get-secrets-coco.sh
Signed-off-by: Beraldo Leal <bleal@redhat.com>
1 parent 2b66cdf commit a1b6508

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

scripts/gen-secrets-coco.sh

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
#!/usr/bin/env bash
2+
set -e
3+
4+
# Generate cryptographic material required by the CoCo components.
5+
# Run this once before your first deployment.
6+
#
7+
# Creates:
8+
# - KBS Ed25519 keypair for Trustee admin API authentication
9+
# - Copies values-secret.yaml.template to ~/.config/validated-patterns/values-secret-<pattern>.yaml (if not present)
10+
#
11+
# Will not overwrite existing files. Delete ~/.config/validated-patterns/trustee/
12+
# to regenerate the keypair.
13+
14+
SECRETS_DIR="${HOME}/.config/validated-patterns/trustee"
15+
KBS_PRIVATE_KEY="${SECRETS_DIR}/kbsPrivateKey"
16+
KBS_PUBLIC_KEY="${SECRETS_DIR}/kbsPublicKey"
17+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
18+
PATTERN_DIR="${SCRIPT_DIR}/.."
19+
20+
# Determine pattern name from values-global.yaml
21+
PATTERN_NAME=$(yq eval '.global.pattern' "${PATTERN_DIR}/values-global.yaml" 2>/dev/null)
22+
if [ -z "$PATTERN_NAME" ] || [ "$PATTERN_NAME" == "null" ]; then
23+
echo "ERROR: Could not determine pattern name from values-global.yaml"
24+
exit 1
25+
fi
26+
27+
VALUES_FILE="${HOME}/.config/validated-patterns/values-secret-${PATTERN_NAME}.yaml"
28+
29+
mkdir -p "${SECRETS_DIR}"
30+
31+
# Generate KBS Ed25519 keypair
32+
if [ ! -f "${KBS_PRIVATE_KEY}" ]; then
33+
echo "Generating KBS Ed25519 keypair..."
34+
rm -f "${KBS_PUBLIC_KEY}"
35+
openssl genpkey -algorithm ed25519 > "${KBS_PRIVATE_KEY}"
36+
openssl pkey -in "${KBS_PRIVATE_KEY}" -pubout -out "${KBS_PUBLIC_KEY}"
37+
chmod 600 "${KBS_PRIVATE_KEY}"
38+
echo " Private key: ${KBS_PRIVATE_KEY}"
39+
echo " Public key: ${KBS_PUBLIC_KEY}"
40+
else
41+
echo "KBS keypair already exists, skipping."
42+
fi
43+
44+
# Copy values-secret template
45+
if [ ! -f "${VALUES_FILE}" ]; then
46+
echo "Copying values-secret template to ${VALUES_FILE}"
47+
echo "Please review before deploying."
48+
cp "${PATTERN_DIR}/values-secret.yaml.template" "${VALUES_FILE}"
49+
else
50+
echo "Values file already exists: ${VALUES_FILE}"
51+
fi
52+
53+
echo ""
54+
echo "Next steps:"
55+
echo " 1. Run ./scripts/get-pcr.sh to retrieve PCR measurements"
56+
echo " 2. Review ${VALUES_FILE}"
57+
echo " 3. Run ./pattern.sh make install"

0 commit comments

Comments
 (0)