Repository navigation
Ramen v0.1.0
Ramen is a Kubernetes-native disaster recovery orchestrator for workloads and
their persistent data across Open Cluster Management (OCM) managed clusters.
This is the first published (non-rc) release. All APIs (ramendr.openshift.io/v1alpha1)
remain alpha; breaking changes are possible before 1.0.
This release supersedes v0.1.0-rc1 (2026-04-09). The release-0.1 branch was
brought up to date with main before tagging, so v0.1.0 contains over 400 commits
from 18 contributors that were not in rc1. If you tried rc1, read Upgrade
notes and behavior changes below; job/cronjob hooks from rc1 were reverted
and job hooks re-added differently (#2508, #2571).
Artifacts
| Artifact | Reference |
|---|---|
| Operator image | quay.io/ramendr/ramen-operator:v0.1.0 (linux/amd64) |
| Hub OLM bundle | quay.io/ramendr/ramen-hub-operator-bundle:v0.1.0 |
| DR-cluster OLM bundle | quay.io/ramendr/ramen-dr-cluster-operator-bundle:v0.1.0 |
| OLM catalog | quay.io/ramendr/ramen-operator-catalog:v0.1.0 (channel alpha) |
| Go modules | github.com/ramendr/ramen@v0.1.0, .../api@v0.1.0, .../e2e@v0.1.0 |
Image digests:
quay.io/ramendr/ramen-operator@sha256:a2a9682922888440cf0dab600ebd9b342b11164e290cf358b46026c8c758d7ae
quay.io/ramendr/ramen-hub-operator-bundle@sha256:8f09eae19dc5e1005c38d0131f237f10a611450bac5a1d82f32dea765cd2e351
quay.io/ramendr/ramen-dr-cluster-operator-bundle@sha256:7694a495e2dafa9bea104f41d9375f161259fb81bfae1cbda21e170d423478be
quay.io/ramendr/ramen-operator-catalog@sha256:00b22f67593e65e8ee21f09aa04192d6f39eb2d34e60b7ec4e442c3dcf56a25b
Release assets: rendered manifests for the hub (ramen-hub-operator-k8s.yaml,
ramen-hub-operator-ocp.yaml) and dr-cluster (ramen-dr-cluster-operator.yaml)
operators, CRD-only bundles (ramen-hub-crds.yaml, ramen-dr-cluster-crds.yaml)
and SHA256SUMS.
Install: kubectl apply -k "https://github.com/RamenDR/ramen/config/olm-install/hub?ref=v0.1.0"
(see docs/install.md at the tag).
Tested with: Kubernetes 1.35 (Kind) in CI; Go 1.26; controller-runtime v0.23;
OCM api v1.2.0; Velero v1.15; VolSync v0.11; CSI-Addons v0.14+ (main);
external-snapshotter client v8.6.
Highlights
Test failover (DR dry run)
- New
spec.dryRunon DRPlacementControl and VolumeReplicationGroup to test a
failover on the peer cluster without disrupting the primary; new
TestingFailoverprogression, dry-run snapshot management, abort/revert to
the last action and promotion of a dry run to a real failover. - Dry run is refused when replication lags more than 3x the scheduling interval.
Global VolumeGroupReplication (global VGR)
- Support for storage backends that replicate at the filesystem/group level
shared by multiple VRGs:peerClasses[].global, detection from
VolumeGroupReplicationClass labels, cross-DRPC consensus (GlobalAction
condition,WaitOnGlobalActionprogression), secondary transition gating on
PVC readiness, metric and alert for global action consensus.
VM static IP preservation
- DRPolicy
spec.networkMappingRef(ConfigMap with bidirectional subnet
mappings) andstatus.networkPeers; DRClusterConfig reports discovered
NetworkAttachmentDefinitions; VRGstaticIPTranslationSpec/
status.staticIPDiscovery; DRPC surfacesprotectedStaticIPVMsand
NetworkMappingLoaded. Works when Multus/NAD CRD is absent.
Observability
- DR telemetry metrics with Prometheus recording rules; DR action counts
persisted on DRPC;progression_statemetric for Metro DR; CIDR validation
(CIDRsValidatedDRCluster condition,UndetectedCIDRsFoundmetric and
alert); Prometheus scraping RBAC; metrics Service now forwards to the
controller-runtime metrics port.
Recipes and hooks
- Job hooks in recipes; recipe automatically created on the destination
cluster; excluded resources managed via ConfigMap; recipe ManifestWork/MCV
cleanup on finalization; exec hook parsing fixed for complex shell quoting.
Storage and data path
- CephFS consistency groups: incremental sync, ownership of restored PVCs.
- Public VolumeGroupSnapshot API support with served-version detection.
- Destination volume handle annotations for single volumes and volume groups;
PV/VGRC clusterID and handles updated on restore after failover. - S3 profile validation now performs HeadBucket.
- All Ramen-created resources labelled
created-by-ramen. - Granular VM DR: immediate out-of-band backup when the VM list changes;
guardrails preventing VM cleanup during VRG deletion.
Upgrade notes and behavior changes
- VolSync PVC ownership: Ramen no longer sets ownerReferences on PVCs;
legacy ownerReferences are stripped on upgrade and PVs are retained instead.
ACM do-not-delete annotation handling was removed. - Configuration: the
--configflag was removed. Operator configuration is
compiled defaults merged with the operator ConfigMap; the ConfigMap is no
longer generated at install time (the operator creates it; an OLM-managed
ConfigMap is disowned on merge).RAMEN_CONTROLLER_TYPEenv var is required. - Manager options (metrics/health bind address, leader election) are now
command-line flags; the corresponding RamenConfig fields are deprecated and
ignored with a warning. - Hub derives dr-cluster OLM settings (channel, catalog, CSV) from its own
Subscription.retainNamespaceSCCAcrossPeersenabled by default. - RBAC files renamed from
auth_proxy*tometrics_auth*. - Operator base image is now UBI 9 minimal (was UBI 8).
API changes (v1alpha1, additive)
DRPolicy spec.networkMappingRef, status.networkPeers, peerClasses[].global;
DRClusterConfig status.networkAttachments; DRCluster CIDRsValidated
condition; DRPC spec.dryRun, status.protectedStaticIPVMs; VRG spec.dryRun,
spec.staticIPTranslationSpec, status.staticIPDiscovery.
Notable fixes
Fencing with multiple NetworkFenceClasses; fencing stuck on S3 validation
failure; MaintenanceMode blocking unrelated backends during failover; PVC
orphaning/leftovers during VRG deletion; CephFS relocate cleanup; namespace
ManifestWork/MCV deletion for discovered apps; nil-pointer panics (global VGR
lastGroupSyncTime, reconcileAsSecondary); PeerReady set too early; ApplicationSet
matrix/merge generator VRG namespace detection; DRPolicy conflict validation;
hub-derived dr-cluster OLM package name when the hub is installed upstream via
OLM (ramen-dr-cluster-operator, not ramen-cluster-operator) (#2865).
Known issues
- A secondary VRG can intermittently report Unknown because of a PVC update
conflict while applying the consistency-group label (#2849). - CephFS consistency groups: final-sync temporary PVCs are not skipped in
EnsureApplicationPVCsMounted (#2487). - Images are linux/amd64 only although the CSV lists ppc64le/s390x.
- Images are not signed and ship no SBOM yet.
Tooling
drenv/ramendev (test/, ramendev/) are development tools and are not release
artifacts. Use ramenctl (github.com/RamenDR/ramenctl) for user-facing CLI.
Full changelog: v0.1.0-rc1...v0.1.0