Skip to content

feat(apps): verify cosign signatures on app OCI artifacts#1559

Merged
botantler[bot] merged 1 commit into
mainfrom
feat/cosign-verify-app-artifacts
May 24, 2026
Merged

feat(apps): verify cosign signatures on app OCI artifacts#1559
botantler[bot] merged 1 commit into
mainfrom
feat/cosign-verify-app-artifacts

Conversation

@devantler
Copy link
Copy Markdown
Contributor

Summary

  • Enable keyless cosign signature verification (spec.verify) on the wedding-app and ascoachingogvaner OCIRepositories.
  • Artifacts are signed in reusable-workflows/.github/workflows/publish-app.yaml via GitHub Actions OIDC (Fulcio/Rekor). source-controller now rejects any manifest not signed by that reusable workflow before reconciling it.

Identity validated

The signing identity was extracted from the live signed artifacts (cert SAN) and validated with cosign verify against both wedding-app/manifests:1.5.9 and ascoachingogvaner/manifests:1.0.1:

  • issuer: ^https://token\.actions\.githubusercontent\.com$
  • subject: ^https://github\.com/devantler-tech/reusable-workflows/\.github/workflows/publish-app\.yaml@.+$

The subject matches the reusable workflow path with any pinned ref (@.+), so it survives Renovate/Dependabot bumps of the workflow SHA without breaking verification. A negative control (wrong path) was confirmed to fail.

Test plan

  • Extracted cert SAN from both live artifacts (identical identity)
  • cosign verify exit 0 for both artifacts with the resilient regex
  • Negative control (wrong subject) correctly rejected
  • After merge + deploy: confirm both OCIRepositories stay Ready=True (verification passes against live artifacts, no reconciliation halt)

Generated with Claude Code

Enable keyless cosign signature verification on the wedding-app and
ascoachingogvaner OCIRepositories. Artifacts are signed in publish-app.yaml
via GitHub Actions OIDC (Fulcio/Rekor), so source-controller now rejects any
manifest not signed by that reusable workflow before reconciling it.

The subject regex matches the reusable workflow path with any pinned ref, so
it survives Renovate/Dependabot bumps of the workflow SHA without breaking
verification.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 24, 2026 13:23
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Enables keyless Cosign signature verification (spec.verify) for the Flux OCIRepository sources that drive the wedding-app and ascoachingogvaner app deployments, so source-controller will only reconcile OCI artifacts signed by the intended GitHub Actions reusable workflow identity.

Changes:

  • Added spec.verify.provider: cosign to both app OCIRepository resources.
  • Added spec.verify.matchOIDCIdentity constraints (issuer + subject regex) matching the GitHub Actions OIDC identity of devantler-tech/reusable-workflows/.github/workflows/publish-app.yaml.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
k8s/bases/apps/wedding-app/sync.yaml Enables Cosign keyless verification on the wedding-app OCIRepository using issuer/subject identity matching.
k8s/bases/apps/ascoachingogvaner/sync.yaml Enables Cosign keyless verification on the ascoachingogvaner OCIRepository using the same issuer/subject identity matching.

@botantler botantler Bot added this pull request to the merge queue May 24, 2026
Merged via the queue into main with commit 8cb4c51 May 24, 2026
11 checks passed
@botantler botantler Bot deleted the feat/cosign-verify-app-artifacts branch May 24, 2026 13:52
@github-project-automation github-project-automation Bot moved this from 🫴 Ready to ✅ Done in 🌊 Project Board May 24, 2026
@botantler
Copy link
Copy Markdown
Contributor

botantler Bot commented May 24, 2026

🎉 This PR is included in version 1.1.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

2 participants