Skip to content

Add tag-triggered release workflow and versioned install docs - #29

Open
Rakshith-R wants to merge 5 commits into
RamenDR:mainfrom
Rakshith-R:release-automation
Open

Rakshith-R wants to merge 5 commits into
RamenDR:mainfrom
Rakshith-R:release-automation

Conversation

@Rakshith-R

@Rakshith-R Rakshith-R commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add .github/workflows/tag-release.yaml that triggers on v* tag pushes to build and release versioned operator, mover, and bundle images to quay.io/ramendr/, generate install.yaml, and create a GitHub Release with the manifest attached
  • Update README with versioned installation and customization instructions for the deployment namespace and CSI ConfigMap location
  • Include the deployment Namespace in the generated manifest so it works on a fresh cluster
  • Pin actions used by the new release workflow to immutable commit SHAs
  • Use Rook v1.19.9 in E2E for Ceph Tentacle key-format compatibility

Release flow

git tag v0.1.0 && git push upstream v0.1.0
    |
    |-> tag_operator  -> quay.io/.../operator:v0.1.0
    |-> tag_mover     -> quay.io/.../mover:v0.1.0
    |-> tag_bundle    -> quay.io/.../bundle:v0.1.0
    |
    '-> publish_release -> GitHub Release + install.yaml

Customizable defaults

Variable Default Description
NAMESPACE ceph-volsync Operator deployment namespace
CEPH_CSI_CONFIG_NAME ceph-csi-config Ceph CSI ConfigMap name
CEPH_CSI_CONFIG_NAMESPACE rook-ceph Ceph CSI ConfigMap namespace

Assisted-by: Claude noreply@anthropic.com

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adds tag-triggered releases with versioned container images, install manifests, and release-based installation guidance.

Changes:

  • Builds and publishes operator, mover, and bundle images for v* tags.
  • Creates a GitHub Release containing install.yaml.
  • Documents release and customized source installations.

Reviewed changes

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

File Description
.github/workflows/tag-release.yaml Implements image builds and release publication.
README.md Adds versioned installation and customization instructions.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/tag-release.yaml
Comment thread .github/workflows/tag-release.yaml
Comment thread README.md Outdated
Add .github/workflows/tag-release.yaml that triggers on v* tag pushes:
- Builds and pushes operator, mover, and bundle images to quay.io with version tag
- Generates consolidated install.yaml via make build-installer with versioned images
- Creates GitHub Release with auto-generated notes and install.yaml artifact

Update README with versioned install instructions using release download URL.

Modeled after csi-addons/kubernetes-csi-addons tag-release workflow.

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Document how to customize the deployment namespace, CSI ConfigMap name, and
CSI ConfigMap namespace when installing from a release (sed-based) or from
source (Make variables).

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Pin all GitHub Actions references by commit SHA for supply-chain safety.
Use exported variables in customization snippet for better readability.

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Generate the Namespace only in the consolidated release installer so kubectl apply works on a fresh cluster without making deploy and undeploy own shared namespaces. Correct the README and Makefile descriptions because VolSync CRDs are prerequisites, and document namespace creation for source installs.

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Rakshith R <rar@redhat.com>
Ceph Tentacle (v20.2.4+) uses aes256k key format by default.
Rook < v1.19.9 does not handle this, causing mon quorum failures
in e2e tests. This was the root cause of persistent e2e flakes.

See: ceph/ceph-csi#6487

Assisted-by: Claude <noreply@anthropic.com>
Signed-off-by: Rakshith R <rar@redhat.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The source-install commands create only the default namespace, causing the documented custom-namespace deployment flow to fail.

Once you've addressed the issues Copilot identified, you can request another Copilot review.

Review details
  • Files reviewed: 7/7 changed files
  • Comments generated: 2
  • Review effort level: Balanced

Comment thread README.md
make deploy IMG=quay.io/ramendr/ceph-volsync-plugin-operator:latest \
MOVER_IMG=quay.io/ramendr/ceph-volsync-plugin-mover:latest
# Create the namespace configured in config/default/kustomization.yaml
kubectl create namespace ceph-volsync --dry-run=client -o yaml | kubectl apply -f -
Comment thread docs/user-guide.md
### 2. Deploy the Operator

```bash
kubectl create namespace ceph-volsync --dry-run=client -o yaml | kubectl apply -f -
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants