diff --git a/releasenotes/v0.14.0-beta.0.md b/releasenotes/v0.14.0-beta.0.md
new file mode 100644
index 0000000000..9692aac2ee
--- /dev/null
+++ b/releasenotes/v0.14.0-beta.0.md
@@ -0,0 +1,215 @@
+🚨 This is a BETA RELEASE. Use it only for testing purposes. If you find any bugs, file an [issue](https://github.com/kubernetes-sigs/cluster-api-provider-openstack/issues/new).
+
+More details about the release
+
+:warning: **BETA RELEASE NOTES** :warning:
+
+## Deprecation Warning
+
+The following fields are deprecated and will be removed in a future release:
+- OpenStackMachine and OpenStackCluster `status.ready`.
+- OpenStackMachine and OpenStackCluster `status.failureReason` and `status.failureMessage`.
+
+See these issues for more information:
+- https://github.com/kubernetes-sigs/cluster-api-provider-openstack/issues/2374
+- https://github.com/kubernetes-sigs/cluster-api-provider-openstack/issues/2375
+
+## Changes since v0.13.2
+## :chart_with_upwards_trend: Overview
+- 111 new commits merged
+- 7 feature additions ✨
+- 9 bugs fixed 🐛
+
+## :sparkles: New Features
+- Add OpenStackClusterIdentity for centralized credential management (#2682)
+- Add PriorityQueue feature flag (#2823)
+- CAPI v1beta2 conditions and deprecations for OSC (#2832)
+- CAPI v1beta2 conditions and deprecations for OSM (#2872)
+- Implement CRD migration (#2810)
+- Switch to CAPI v1beta2 for manifests (#2717)
+- Update Cluster API to v1.12.0 (#2873)
+
+## :bug: Bug Fixes
+- Allow setting disablePortSecurity on OSM port (#2784)
+- Correction of issue #2617 selected fixed subnet not applied (#2639)
+- Define subnetID on LB member when networks differ (#2799)
+- Ensure pool member reach active state (#2815)
+- Fixes out-of-range bug when multiple ports are passed to getSGControlPlaneAdditionalPorts (#2677)
+- Handle SOFT_DELETED and DELETED states in server deletion (#2834)
+- Remove invalid kustomizeconfig from config/webhook (#2850)
+- Revert v1beta2 contract (#2883)
+- Uplift go 1.24.8 to address security issue (#2764)
+
+## :seedling: Others
+- Add AGENTS.md (#2807)
+- Add bastion and allowedCIDR to dev-test clusterclass (#2725)
+- Add bnallapeta to reviewers (#2794)
+- Add entry of new release branch for security scan (#2703)
+- Add entry of new release branch to depandabot (#2692)
+- Add github workflow for pull request to have github approval (#2743)
+- Add link check in PR to improve docs (#2741)
+- Add missing hash in github workflow (#2731)
+- Add Moshiur as reviewer (#2768)
+- Add new config to pr-link check (#2876)
+- Add PR title verify workflow for CAPO (#2728)
+- Add yamlling workflow to check yaml files in pull request (#2845)
+- Bump cloudbuild image (#2691)
+- Bump e2e to use k8s v1.34.2 (#2836)
+- Bump go to 1.24.9 (#2787)
+- Bump go version to 1.24.11 (#2877)
+- Bump go version to 1.24.7 (#2718)
+- Bump golanci-lint to v2.7.2 (#2894)
+- Bump golangci-lint to v2.6.1 (#2825)
+- Bump golangci-lint to v2.6.2 (#2858)
+- Cmd: strip out symbol table & DWARF debugging info (#2750)
+- Dependabot: Hold crypto on release-0.12, unify spacing (#2709)
+- Dockerfile: add the ARG defaulting within the Dockerfile (#2751)
+- Don't run golanci-lint update on PRs (#2659)
+- E2E: Add quick-start test using ClusterClass (#2793)
+- E2e: bump ORC to v2.4.0 (#2925)
+- E2E: Cleanup upgrade patches (#2831)
+- E2E: Fix log collection for machines (#2795)
+- E2E: Fix the CCM patch for the v1beta1 cluster-template (#2766)
+- E2E: Run clusterctl upgrade from v0.13 (#2714)
+- E2E: Use bucket for flatcar production image (#2923)
+- E2E: Use kind cluster for clusterctl upgrade tests (#2792)
+- E2E: Use Kubernetes v1.35.0 in tests (#2929)
+- E2E: Use secret instead of host path for CCM config (#2744)
+- Exclude `openshift` dir from boilerplate (#2901)
+- Fix calcualtion of previous tag for release note generation (#2860)
+- Fix DWARF debugging info (#2915)
+- Fix release note generation (#2688)
+- Fix release notes generation (#2846)
+- Fix update-golangci-lint permissions (#2748)
+- Fix URL for downloading gotestsum based on OS (#2684)
+- Hold x/text since it requires go1.24 (#2740)
+- Ignore ORC major/minor bumps on release branches (#2930)
+- Migrate CI to stable/2025.2 (#2809)
+- Pin kustomize on release-0.12 (#2772)
+- Refactor generate-codegen (#2761)
+- Release automation workflow (#2791)
+- Remove dependabot config and workflows for release-0.11 (#2779)
+- Remove mdbooth as a maintainer (#2727)
+- Set osc lb status when default networks are used (#2798)
+- Update depandabot ignore list for release-0.12 (#2882)
+- Update golangci lint v2.5.0 (#2752)
+- Update issue template for new release (#2919)
+- Update log verbosity level according to CAPI (#2785)
+- Update metadata for v0.14 (#2917)
+- Uplift go 1.24.6 to address security issue (#2708)
+- :rocket: Release v0.13.1 (#2871)
+
+:book: Additionally, there have been 6 contributions to our documentation and book. (#2720, #2802, #2874, #2878, #2906, #2908)
+
+## Dependencies
+
+### Added
+- github.com/go-jose/go-jose/v4: [v4.0.4](https://github.com/go-jose/go-jose/tree/v4.0.4)
+- github.com/golang-jwt/jwt/v5: [v5.2.2](https://github.com/golang-jwt/jwt/tree/v5.2.2)
+- github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus: [v1.0.1](https://github.com/grpc-ecosystem/go-grpc-middleware/tree/providers/prometheus/v1.0.1)
+- github.com/grpc-ecosystem/go-grpc-middleware/v2: [v2.3.0](https://github.com/grpc-ecosystem/go-grpc-middleware/tree/v2.3.0)
+- github.com/olekukonko/cat: [50322a0](https://github.com/olekukonko/cat/tree/50322a0)
+- github.com/olekukonko/errors: [v1.1.0](https://github.com/olekukonko/errors/tree/v1.1.0)
+- github.com/olekukonko/ll: [v0.1.1](https://github.com/olekukonko/ll/tree/v0.1.1)
+- github.com/olekukonko/ts: [78ecb04](https://github.com/olekukonko/ts/tree/78ecb04)
+- github.com/spiffe/go-spiffe/v2: [v2.5.0](https://github.com/spiffe/go-spiffe/tree/v2.5.0)
+- github.com/zeebo/errs: [v1.4.0](https://github.com/zeebo/errs/tree/v1.4.0)
+- go.etcd.io/raft/v3: v3.6.0
+- sigs.k8s.io/structured-merge-diff/v6: v6.3.1
+
+### Changed
+- cel.dev/expr: v0.19.1 → v0.24.0
+- github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp: [v1.25.0 → v1.26.0](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/compare/detectors/gcp/v1.25.0...detectors/gcp/v1.26.0)
+- github.com/cncf/xds/go: [cff3c89 → 2f00578](https://github.com/cncf/xds/compare/cff3c89...2f00578)
+- github.com/docker/docker: [v28.3.3+incompatible → v28.5.2+incompatible](https://github.com/docker/docker/compare/v28.3.3...v28.5.2)
+- github.com/docker/go-connections: [v0.5.0 → v0.6.0](https://github.com/docker/go-connections/compare/v0.5.0...v0.6.0)
+- github.com/emicklei/go-restful/v3: [v3.12.2 → v3.13.0](https://github.com/emicklei/go-restful/compare/v3.12.2...v3.13.0)
+- github.com/fsnotify/fsnotify: [v1.8.0 → v1.9.0](https://github.com/fsnotify/fsnotify/compare/v1.8.0...v1.9.0)
+- github.com/fxamacker/cbor/v2: [v2.7.0 → v2.9.0](https://github.com/fxamacker/cbor/compare/v2.7.0...v2.9.0)
+- github.com/google/cel-go: [v0.23.2 → v0.26.0](https://github.com/google/cel-go/compare/v0.23.2...v0.26.0)
+- github.com/google/gnostic-models: [v0.6.9 → v0.7.0](https://github.com/google/gnostic-models/compare/v0.6.9...v0.7.0)
+- github.com/google/pprof: [27863c8 → f64d9cf](https://github.com/google/pprof/compare/27863c8...f64d9cf)
+- github.com/gophercloud/gophercloud/v2: [v2.9.0 → v2.10.0](https://github.com/gophercloud/gophercloud/compare/v2.9.0...v2.10.0)
+- github.com/grpc-ecosystem/grpc-gateway/v2: [v2.24.0 → v2.26.3](https://github.com/grpc-ecosystem/grpc-gateway/compare/v2.24.0...v2.26.3)
+- github.com/ianlancetaylor/demangle: [bd984b5 → f615e6b](https://github.com/ianlancetaylor/demangle/compare/bd984b5...f615e6b)
+- github.com/jonboulle/clockwork: [v0.4.0 → v0.5.0](https://github.com/jonboulle/clockwork/compare/v0.4.0...v0.5.0)
+- github.com/k-orc/openstack-resource-controller/v2: [v2.3.0 → v2.4.0](https://github.com/k-orc/openstack-resource-controller/compare/v2.3.0...v2.4.0)
+- github.com/mattn/go-colorable: [v0.1.13 → v0.1.14](https://github.com/mattn/go-colorable/compare/v0.1.13...v0.1.14)
+- github.com/mattn/go-runewidth: [v0.0.14 → v0.0.16](https://github.com/mattn/go-runewidth/compare/v0.0.14...v0.0.16)
+- github.com/modern-go/reflect2: [v1.0.2 → 35a7c28](https://github.com/modern-go/reflect2/compare/v1.0.2...35a7c28)
+- github.com/olekukonko/tablewriter: [v0.0.5 → v1.0.9](https://github.com/olekukonko/tablewriter/compare/v0.0.5...v1.0.9)
+- github.com/pelletier/go-toml/v2: [v2.2.3 → v2.2.4](https://github.com/pelletier/go-toml/compare/v2.2.3...v2.2.4)
+- github.com/pmezard/go-difflib: [v1.0.0 → 5d4384e](https://github.com/pmezard/go-difflib/compare/v1.0.0...5d4384e)
+- github.com/rivo/uniseg: [v0.4.2 → v0.4.7](https://github.com/rivo/uniseg/compare/v0.4.2...v0.4.7)
+- github.com/rogpeppe/go-internal: [v1.13.1 → v1.14.1](https://github.com/rogpeppe/go-internal/compare/v1.13.1...v1.14.1)
+- github.com/sagikazarmark/locafero: [v0.7.0 → v0.11.0](https://github.com/sagikazarmark/locafero/compare/v0.7.0...v0.11.0)
+- github.com/sourcegraph/conc: [v0.3.0 → 5f936ab](https://github.com/sourcegraph/conc/compare/v0.3.0...5f936ab)
+- github.com/spf13/afero: [v1.12.0 → v1.15.0](https://github.com/spf13/afero/compare/v1.12.0...v1.15.0)
+- github.com/spf13/cast: [v1.7.1 → v1.10.0](https://github.com/spf13/cast/compare/v1.7.1...v1.10.0)
+- github.com/spf13/cobra: [v1.9.1 → v1.10.1](https://github.com/spf13/cobra/compare/v1.9.1...v1.10.1)
+- github.com/spf13/viper: [v1.20.1 → v1.21.0](https://github.com/spf13/viper/compare/v1.20.1...v1.21.0)
+- go.etcd.io/bbolt: v1.3.11 → v1.4.2
+- go.etcd.io/etcd/api/v3: v3.5.22 → v3.6.6
+- go.etcd.io/etcd/client/pkg/v3: v3.5.22 → v3.6.6
+- go.etcd.io/etcd/client/v3: v3.5.22 → v3.6.6
+- go.etcd.io/etcd/pkg/v3: v3.5.21 → v3.6.4
+- go.etcd.io/etcd/server/v3: v3.5.21 → v3.6.4
+- go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc: v0.58.0 → v0.60.0
+- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc: v1.33.0 → v1.34.0
+- go.opentelemetry.io/otel/exporters/otlp/otlptrace: v1.33.0 → v1.34.0
+- go.opentelemetry.io/otel/metric: v1.34.0 → v1.35.0
+- go.opentelemetry.io/otel/trace: v1.34.0 → v1.35.0
+- go.opentelemetry.io/otel: v1.34.0 → v1.35.0
+- go.opentelemetry.io/proto/otlp: v1.4.0 → v1.5.0
+- go.uber.org/zap: v1.27.0 → v1.27.1
+- golang.org/x/oauth2: v0.30.0 → v0.33.0
+- google.golang.org/genproto/googleapis/api: 5f5ef82 → a0af3ef
+- google.golang.org/genproto/googleapis/rpc: 1a7da9e → a0af3ef
+- google.golang.org/grpc: v1.71.3 → v1.72.3
+- k8s.io/api: v0.33.7 → v0.34.3
+- k8s.io/apiextensions-apiserver: v0.33.7 → v0.34.3
+- k8s.io/apimachinery: v0.33.7 → v0.34.3
+- k8s.io/apiserver: v0.33.7 → v0.34.3
+- k8s.io/client-go: v0.33.7 → v0.34.3
+- k8s.io/cluster-bootstrap: v0.33.3 → v0.34.2
+- k8s.io/code-generator: v0.33.7 → v0.34.3
+- k8s.io/component-base: v0.33.7 → v0.34.3
+- k8s.io/gengo/v2: 1244d31 → 85fd79d
+- k8s.io/kms: v0.33.7 → v0.34.3
+- k8s.io/kube-openapi: 8b98d1e → f3f2b99
+- sigs.k8s.io/cluster-api/test: v1.11.4 → v1.12.0
+- sigs.k8s.io/cluster-api: v1.11.4 → v1.12.1
+- sigs.k8s.io/controller-runtime: v0.21.0 → v0.22.4
+- sigs.k8s.io/json: 9aa6b5e → cfa47c3
+
+### Removed
+- cloud.google.com/go/auth/oauth2adapt: v0.2.6
+- cloud.google.com/go/auth: v0.13.0
+- cloud.google.com/go/iam: v1.2.2
+- cloud.google.com/go/monitoring: v1.21.2
+- cloud.google.com/go/storage: v1.49.0
+- cloud.google.com/go: v0.116.0
+- github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric: [v0.48.1](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/tree/exporter/metric/v0.48.1)
+- github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping: [v0.48.1](https://github.com/GoogleCloudPlatform/opentelemetry-operations-go/tree/internal/resourcemapping/v0.48.1)
+- github.com/asaskevich/govalidator: [f61b66f](https://github.com/asaskevich/govalidator/tree/f61b66f)
+- github.com/census-instrumentation/opencensus-proto: [v0.4.1](https://github.com/census-instrumentation/opencensus-proto/tree/v0.4.1)
+- github.com/golang-jwt/jwt/v4: [v4.5.2](https://github.com/golang-jwt/jwt/tree/v4.5.2)
+- github.com/golang/groupcache: [41bb18b](https://github.com/golang/groupcache/tree/41bb18b)
+- github.com/google/s2a-go: [v0.1.8](https://github.com/google/s2a-go/tree/v0.1.8)
+- github.com/googleapis/enterprise-certificate-proxy: [v0.3.4](https://github.com/googleapis/enterprise-certificate-proxy/tree/v0.3.4)
+- github.com/googleapis/gax-go/v2: [v2.14.1](https://github.com/googleapis/gax-go/tree/v2.14.1)
+- github.com/grpc-ecosystem/go-grpc-middleware: [v1.3.0](https://github.com/grpc-ecosystem/go-grpc-middleware/tree/v1.3.0)
+- github.com/grpc-ecosystem/grpc-gateway: [v1.16.0](https://github.com/grpc-ecosystem/grpc-gateway/tree/v1.16.0)
+- github.com/kr/fs: [v0.1.0](https://github.com/kr/fs/tree/v0.1.0)
+- github.com/pkg/sftp: [v1.13.7](https://github.com/pkg/sftp/tree/v1.13.7)
+- go.etcd.io/etcd/client/v2: v2.305.21
+- go.etcd.io/etcd/raft/v3: v3.5.21
+- go.opencensus.io: v0.24.0
+- go.uber.org/atomic: v1.9.0
+- google.golang.org/api: v0.215.0
+- google.golang.org/genproto: e639e21
+- sigs.k8s.io/structured-merge-diff/v4: v4.7.0
+
+
+
+_Thanks to all our contributors!_ 😊