Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 29 additions & 2 deletions .github/workflows/helm-ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ jobs:
- name: Template supported install paths
run: |
helm template governance-platform charts/governance-platform >/dev/null
if [ -d charts/eqty-pdfgen ]; then
helm template governance-platform charts/governance-platform \
--set 'eqty-pdfgen.enabled=true' \
>/dev/null
fi
helm template governance-platform charts/governance-platform \
--values charts/governance-platform/examples/values-keycloak.yaml \
--values charts/governance-platform/examples/values-external-postgres.yaml \
Expand All @@ -83,17 +88,27 @@ jobs:

- name: Template registry override paths
run: |
template_args=()
if [ -d charts/eqty-pdfgen ]; then
template_args+=(--set 'eqty-pdfgen.enabled=true')
fi

helm template governance-platform charts/governance-platform \
"${template_args[@]}" \
--set global.imageRegistryOverride=registry.customer.example \
>/tmp/registry-override.yaml
helm template governance-platform charts/governance-platform \
"${template_args[@]}" \
--set global.imageRepositoryPrefixOverride=registry.customer.example/eqtylab \
>/tmp/repository-prefix-override.yaml

grep -q 'registry.customer.example/eqtylab/governance-studio' /tmp/repository-prefix-override.yaml
grep -q 'registry.customer.example/eqtylab/governance-service' /tmp/repository-prefix-override.yaml
grep -q 'registry.customer.example/eqtylab/auth-service' /tmp/repository-prefix-override.yaml
grep -q 'registry.customer.example/eqtylab/integrity-service' /tmp/repository-prefix-override.yaml
if [ -d charts/eqty-pdfgen ]; then
grep -q 'registry.customer.example/eqtylab/eqty-pdfgen' /tmp/repository-prefix-override.yaml
fi

- name: Validate release manifests
run: |
Expand Down Expand Up @@ -135,7 +150,12 @@ jobs:
;;
esac

for image in authService governanceService governanceStudio integrityService; do
images=(authService governanceService governanceStudio integrityService)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$manifest")" = "eqty-pdfgen" ]; then
images+=(eqtyPdfgen)
fi

for image in "${images[@]}"; do
tag="$(yq ".images.${image}.tag" "$manifest")"
digest="$(yq ".images.${image}.digest" "$manifest")"
if [ "$tag" != "$version" ]; then
Expand All @@ -150,7 +170,14 @@ jobs:

if [ "$version" = "$current_chart_version" ]; then
matched_manifest="$manifest"
for chart in auth-service governance-service governance-studio integrity-service governance-platform; do
charts=(auth-service)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$manifest")" = "eqty-pdfgen" ]; then
charts+=(eqty-pdfgen)
fi
charts+=(governance-service governance-studio integrity-service)
charts+=(governance-platform)

for chart in "${charts[@]}"; do
chart_version="$(yq '.version' "charts/${chart}/Chart.yaml")"
if [ "$chart_version" != "$version" ]; then
echo "::error file=charts/${chart}/Chart.yaml::Expected chart version ${version}; found ${chart_version}"
Expand Down
49 changes: 44 additions & 5 deletions .github/workflows/release-platform-package.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,12 @@ jobs:
exit 1
fi

for service in authService governanceService governanceStudio integrityService; do
services=(authService governanceService governanceStudio integrityService)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$MANIFEST")" = "eqty-pdfgen" ]; then
services+=(eqtyPdfgen)
fi

for service in "${services[@]}"; do
tag="$(yq ".images.${service}.tag" "$MANIFEST")"
digest="$(yq ".images.${service}.digest" "$MANIFEST")"
if [ "$tag" != "$VERSION" ]; then
Expand All @@ -126,7 +131,14 @@ jobs:
fi
done

for chart in auth-service governance-service governance-studio integrity-service governance-platform; do
charts=(auth-service)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$MANIFEST")" = "eqty-pdfgen" ]; then
charts+=(eqty-pdfgen)
fi
charts+=(governance-service governance-studio integrity-service)
charts+=(governance-platform)

for chart in "${charts[@]}"; do
chart_version="$(yq '.version' "charts/${chart}/Chart.yaml")"
app_version="$(yq '.appVersion' "charts/${chart}/Chart.yaml")"
if [ "$chart_version" != "$VERSION" ]; then
Expand All @@ -140,17 +152,36 @@ jobs:
done

- name: Helm validation
env:
MANIFEST: ${{ steps.release.outputs.manifest }}
run: |
helm dependency build charts/governance-platform
for chart in charts/auth-service charts/governance-service charts/governance-studio charts/integrity-service charts/governance-platform; do
charts=(charts/auth-service)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$MANIFEST")" = "eqty-pdfgen" ]; then
charts+=(charts/eqty-pdfgen)
fi
charts+=(charts/governance-service charts/governance-studio charts/integrity-service)
charts+=(charts/governance-platform)

for chart in "${charts[@]}"; do
helm lint "$chart"
done
helm template governance-platform charts/governance-platform >/dev/null

template_args=()
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$MANIFEST")" = "eqty-pdfgen" ]; then
template_args+=(--set 'eqty-pdfgen.enabled=true')
fi

helm template governance-platform charts/governance-platform \
"${template_args[@]}" \
>/dev/null
helm template governance-platform charts/governance-platform \
"${template_args[@]}" \
--values charts/governance-platform/examples/values-keycloak.yaml \
--values charts/governance-platform/examples/values-external-postgres.yaml \
>/dev/null
helm template governance-platform charts/governance-platform \
"${template_args[@]}" \
--set global.imageRepositoryPrefixOverride=registry.customer.example/eqtylab \
>/dev/null

Expand All @@ -163,6 +194,7 @@ jobs:
env:
VERSION: ${{ steps.release.outputs.version }}
PUBLISH: ${{ steps.release.outputs.publish }}
MANIFEST: ${{ steps.release.outputs.manifest }}
run: |
set -o pipefail

Expand Down Expand Up @@ -220,7 +252,14 @@ jobs:
EOF
}

for chart in auth-service governance-service governance-studio integrity-service governance-platform; do
charts=(auth-service)
if [ "$(yq '.charts.eqtyPdfgen.name // ""' "$MANIFEST")" = "eqty-pdfgen" ]; then
charts+=(eqty-pdfgen)
fi
charts+=(governance-service governance-studio integrity-service)
charts+=(governance-platform)

for chart in "${charts[@]}"; do
publish_chart "$chart"
done

Expand Down
8 changes: 8 additions & 0 deletions docs-site/readme/reference/release-manifest.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,14 @@ Each runtime image entry must include:
- digest
- source SHA

Current release candidates include these runtime image entries:

- `authService`
- `governanceService`
- `governanceStudio`
- `integrityService`
- `eqtyPdfgen`

Each chart entry must include:

- chart name
Expand Down
12 changes: 12 additions & 0 deletions schemas/release-manifest.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,18 @@
"images": {
"type": "object",
"required": ["authService", "governanceService", "governanceStudio", "integrityService"],
"properties": {
"eqtyPdfgen": {
"type": "object",
"required": ["repository", "tag", "digest", "sourceSha"],
"properties": {
"repository": { "type": "string" },
"tag": { "type": "string" },
"digest": { "type": "string" },
"sourceSha": { "type": "string" }
}
}
},
"additionalProperties": {
"type": "object",
"required": ["repository", "tag", "digest", "sourceSha"],
Expand Down
Loading