14217 Commits
Author SHA1 Message Date
Blaine Gardner c29a096483 Merge pull request #18113 from BlaineEXE/fix-context-cancel-race
core: add workaround for ctx race after admin cephx rotation
2026-08-07 14:57:59 -06:00
Blaine Gardner 05ac850f7b core: add workaround for ctx race after admin cephx rotation
Add a workaround for https://github.com/rook/rook/issues/18112.

This is not a proper fix but is a quick fix that will prevent the race
involving operator reload and `ClusterController`'s near-global
context.Context from allowing multiple simultaneous CephCluster
reconciles of the same cluster object.

There may be other ways in which a CephCluster reconcile could enter
this race, but this workaround should reliably resolve the entry after
admin cephx key rotation.

Possible entry after this workaround is in place could involve systems
where the rook-ceph-operator pod is running on a node with high CPU load
which might prevent an ongoing CephCluster reconcile from getting CPU
cycles needed to exit following context cancellation before the sleep
added in this workaround.

Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
2026-08-07 14:28:16 -06:00
Travis Nielsen e289ab3cca Merge pull request #18076 from cobaltcore-dev/osd-replacement-rollback-fix
osd replacement fix review issues
2026-08-07 13:53:00 -06:00
Travis Nielsen bcbb6f793b Merge pull request #18093 from jhoblitt/helm-cluster-objectstoreusers
helm: add cephObjectStoreUsers to the cluster chart
2026-08-07 12:07:21 -06:00
Travis Nielsen 220cce5ecd Merge pull request #18067 from jhoblitt/release-doc-gaps
docs: update the release process guide to match current practice
2026-08-07 11:53:42 -06:00
Santosh Pillai 91b907f2c4 Merge pull request #18103 from obnoxxx/build-remove-go-work-files
build: remove  the go.work.sum  file
2026-08-07 15:19:37 +05:30
Michael Adam b1d6be3d1e build: remove go.work.sum
The go workspace file go.work.sum) were committed to the tree with PR #17925.

The official guide advises against committing them:
https://go.dev/ref/mod#go-work-file

An exception in which committing the go.work file makes sense
is the case when the modules in a repository are developed exclusively with each other
but not together with external modules.

The rook base module and pkg/apis certainly satisfy this criterion.

While this justifies committing go.work, changes to go.work.sum creates
uynreasonable churn in commits.

Therefore, this change removes go.work.sum
again to reduce churn

Signed-off-by: Michael Adam <obnox@samba.org>
2026-08-07 09:39:49 +02:00
Travis Nielsen b0e283e734 Merge pull request #18080 from somanchi004-code/fix/udev-double-dev-prefix
core: don't prepend /dev to a device path that already has it
2026-08-06 15:01:25 -06:00
Blaine Gardner c9d6d39d44 Merge pull request #18099 from jhoblitt/cmd-log-shell-quoting
core: shell-quote command lines in logs and sh -c strings
2026-08-06 14:29:22 -06:00
Joshua Hoblitt 16cf150a9e Merge pull request #17975 from jhoblitt/docs-ci-gates-and-agents
docs: document the CI checks that gate a pull request, and add AGENTS.md
2026-08-06 12:54:52 -07:00
Joshua Hoblitt f5e09c32ef Merge pull request #17882 from jhoblitt/osd-rawlist-per-device
osd: list prepared devices individually when missing from raw list
2026-08-05 15:14:11 -07:00
Joshua Hoblitt eeda4f331e docs: update the release process guide to match current practice
Fix a non-ASCII dash in the branch creation example, describe the master
updates needed after a release branch is created (mergify rules, supported
Kubernetes versions, upgrade guide), add the pending release notes reset to
the post-release steps, document the env variables gen_release_notes.sh
requires and the meaning of FROM_BRANCH and TO_TAG, remove the unused rc
tag example, update the example versions and example PRs to the v1.20
releases and link them, and list all of the artifacts a release build
publishes.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-08-05 11:38:21 -07:00
Joshua Hoblitt 55a4543bc4 core: shell-quote command strings passed to sh -c
Two call sites build a shell command by interpolating values that were
never shell-quoted, so a value holding a metacharacter is executed
rather than passed along: RadosNamespaceHasObjects joins the finalized
rados argument vector with spaces, and CopyLocalFileToContainer
interpolates the destination path into a redirect.

Neither has misbehaved so far because rook composes both values itself,
not because the inputs are constrained to shell-safe characters.
CopyLocalFileToContainer receives a temp-file path. The rados probe
receives a "<metadataPoolName>:<zone><suffix>" string assembled by
adjustZoneDefaultPools, whose pool half comes from the default pool
placement's metadataPoolName or from spec.sharedPools.metadataPoolName,
neither of which carries pattern validation, or from the zone JSON of a
zone rook adopted rather than created.

Quote both with FormatCommand.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-08-05 10:50:51 -07:00
Joshua Hoblitt 239fb71e6a core: shell-quote logged command lines
A command logged by the exec package could not be copied out of the log
and re-run. Creating the RGW admin ops user, for example, logged an
unquoted "--display-name RGW Admin Ops User" and an unquoted "--caps
accounts=*;buckets=*;users=*;usage=read;metadata=read;zone=read", which
a shell reads as four arguments and six commands respectively. Render
these lines with FormatCommand instead.

cmd-reporter also named the command twice, because exec.Cmd already
carries argv[0] in Args and the log line prefixed Path to the whole of
Args.

The startup line drops the quotes that wrapped the entire argument list,
now that each argument carries its own; both in-tree samples of that
line are updated to match.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-08-05 10:50:51 -07:00
Joshua Hoblitt ae375e10b1 core: add FormatCommand for shell-safe command rendering
Command arguments are passed to the kernel as a vector, so joining them
with plain spaces loses the boundaries between them. An argument holding
whitespace or a shell metacharacter reads back as several arguments, or
as several commands.

FormatCommand renders a command and its arguments as a single line a
POSIX shell reads back as the original vector. Quoting is minimal: an
argument is single-quoted only when it contains a character the shell
would not pass through literally, so the flag-heavy command lines rook
builds stay readable.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-08-05 10:50:51 -07:00
Joshua Hoblitt 4f5fe186da helm: add cephObjectStoreUsers to the cluster chart
The rook-ceph-cluster chart can deploy CephObjectStores but offered no
way to create S3 users for them, so CephObjectStoreUser resources had to
be applied out-of-band. Add a cephObjectStoreUsers values array that
renders one CephObjectStoreUser per entry, following the same name plus
spec passthrough pattern as the multisite resources, with helm-unittest
coverage.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-08-04 10:34:39 -07:00
Somanchi Poorna Sobhita 0697c463bc core: extract the /dev prefix handling into a helper
The same 'split on / and prepend /dev when there is no separator' block
appeared five times in this file: GetDevicePartitions, GetDeviceProperties,
GetUdevInfo, GetDeviceFilesystems and GetDiskUUID. GetUdevInfo was the one
that had it wrong, which is what the previous commit fixed.

Move it into resolveDevicePath so there is a single definition to reason
about, and document why the check exists: a caller may pass a bare kernel
name, a device node, or the mount point of a PVC-backed block device, and
only the first needs the prefix.

No behaviour change. GetDevicePartitions still compares lsblk output against
the unmodified device name, so only the path passed to lsblk is resolved.

Signed-off-by: Somanchi Poorna Sobhita <somanchi004@gmail.com>
2026-08-04 10:16:16 +00:00
Somanchi Poorna Sobhita fe853ae207 core: don't prepend /dev to a device path that already has it
GetUdevInfo always formatted its argument as "/dev/%s", but it is called
both with a kernel name ("sdb") and with a full device path ("/dev/sdb").
In the second case udevadm is invoked on "/dev//dev/sdb" and fails, so
GetUdevInfo returns an error and DevLinks is never populated.

The neighbouring GetDeviceFilesystems, GetDiskUUID and GetDeviceProperties
all guard the prefix this way already; GetUdevInfo is the only one of the
four that does not.

This is reached from getOSDInfoFromCV via PopulateDeviceUdevInfo, where the
call site comment states the intent is to "populate udev DevLinks to match
CR device fullpath entries". The same blockPath is also passed to
PopulateDeviceInfo, which handles an absolute path correctly. Because
findDeviceClass only consults DEVLINKS when devLinks != "", that branch can
never match, and a per-device deviceClass set on a /dev/disk/by-id/... entry
in the CephCluster CR is silently ignored in favour of the disk-derived
class.

The failure is only logged as a warning, so it degrades silently rather than
failing the OSD.

Existing tests could not catch this: the udevadm mocks return a fixed value
for any input, and one matches with strings.Contains, which a doubled prefix
still satisfies. The new test asserts the exact argument.

Signed-off-by: Somanchi Poorna Sobhita <somanchi004@gmail.com>
2026-08-04 10:16:16 +00:00
Artem Torubarov 0c27a95097 osd: cleanup destroyed osd deployment if replacement failed
If osd-replacement fails during provisioning of the new device by the
osd-prepare job (can be the case if the new device is faulty), then
ceph-volume will run its internal rollback logic, which purges the
reserved osd id and its CRUSH position. After the faulty device is
replaced with a working one, rook will reprovision it correctly and
reuse the metadata device slot, but as a new OSD, so data will likely
be rebalanced. Ceph hands out the lowest free id, so the new OSD often
takes the same number back, and then the create path recreates the
deployment by itself. Otherwise, and until a working device arrives,
the downscaled deployment of the destroyed osd is left behind. This
commit handles that case by deleting downscaled ready-for-swap osd
deployments without a corresponding OSD in the osd dump.

Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
2026-08-04 11:28:21 +02:00
subham rai 45c3e3a204 Merge pull request #18082 from rook/dependabot/github_actions/github/codeql-action/upload-sarif-4.37.4
build(deps): bump github/codeql-action/upload-sarif from 4.37.3 to 4.37.4
2026-08-03 21:24:41 +05:30
subham rai 7b9d948d1a Merge pull request #18083 from rook/dependabot/github_actions/actions/stale-11.0.0
build(deps): bump actions/stale from 10.4.0 to 11.0.0
2026-08-03 21:24:16 +05:30
subham rai a4e8ff7fb4 Merge pull request #18084 from rook/dependabot/github_actions/docker/login-action-4.6.0
build(deps): bump docker/login-action from 4.5.1 to 4.6.0
2026-08-03 21:23:19 +05:30
subham rai 1a456ceadf Merge pull request #18085 from rook/dependabot/go_modules/github-dependencies-b850348c08
build(deps): bump the github-dependencies group with 8 updates
2026-08-03 21:09:27 +05:30
subham rai 93411caae4 Merge pull request #18086 from rook/dependabot/go_modules/go.uber.org/zap-1.28.0
build(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0
2026-08-03 21:08:56 +05:30
dependabot[bot] f9f0e9b819 build(deps): bump go.uber.org/zap from 1.27.1 to 1.28.0
Bumps [go.uber.org/zap](https://github.com/uber-go/zap) from 1.27.1 to 1.28.0.
- [Release notes](https://github.com/uber-go/zap/releases)
- [Changelog](https://github.com/uber-go/zap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uber-go/zap/compare/v1.27.1...v1.28.0)

---
updated-dependencies:
- dependency-name: go.uber.org/zap
  dependency-version: 1.28.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 12:49:38 +00:00
dependabot[bot] 11e17e4795 build(deps): bump the github-dependencies group with 8 updates
Bumps the github-dependencies group with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [github.com/aws/aws-sdk-go-v2](https://github.com/aws/aws-sdk-go-v2) | `1.43.0` | `1.43.2` |
| [github.com/aws/aws-sdk-go-v2/config](https://github.com/aws/aws-sdk-go-v2) | `1.32.31` | `1.32.33` |
| [github.com/aws/aws-sdk-go-v2/credentials](https://github.com/aws/aws-sdk-go-v2) | `1.19.30` | `1.19.32` |
| [github.com/aws/aws-sdk-go-v2/service/s3](https://github.com/aws/aws-sdk-go-v2) | `1.106.0` | `1.106.2` |
| [github.com/aws/aws-sdk-go-v2/service/sns](https://github.com/aws/aws-sdk-go-v2) | `1.42.0` | `1.42.2` |
| [github.com/aws/smithy-go](https://github.com/aws/smithy-go) | `1.27.4` | `1.27.5` |
| [github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring](https://github.com/prometheus-operator/prometheus-operator) | `0.92.1` | `0.93.0` |
| [github.com/prometheus-operator/prometheus-operator/pkg/client](https://github.com/prometheus-operator/prometheus-operator) | `0.92.1` | `0.93.0` |


Updates `github.com/aws/aws-sdk-go-v2` from 1.43.0 to 1.43.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.43.0...v1.43.2)

Updates `github.com/aws/aws-sdk-go-v2/config` from 1.32.31 to 1.32.33
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/config/v1.32.31...config/v1.32.33)

Updates `github.com/aws/aws-sdk-go-v2/credentials` from 1.19.30 to 1.19.32
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/credentials/v1.19.30...credentials/v1.19.32)

Updates `github.com/aws/aws-sdk-go-v2/service/s3` from 1.106.0 to 1.106.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/service/s3/v1.106.0...service/s3/v1.106.2)

Updates `github.com/aws/aws-sdk-go-v2/service/sns` from 1.42.0 to 1.42.2
- [Release notes](https://github.com/aws/aws-sdk-go-v2/releases)
- [Commits](https://github.com/aws/aws-sdk-go-v2/compare/v1.42.0...service/s3/v1.42.2)

Updates `github.com/aws/smithy-go` from 1.27.4 to 1.27.5
- [Release notes](https://github.com/aws/smithy-go/releases)
- [Changelog](https://github.com/aws/smithy-go/blob/main/CHANGELOG.md)
- [Commits](https://github.com/aws/smithy-go/compare/v1.27.4...v1.27.5)

Updates `github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring` from 0.92.1 to 0.93.0
- [Release notes](https://github.com/prometheus-operator/prometheus-operator/releases)
- [Changelog](https://github.com/prometheus-operator/prometheus-operator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus-operator/prometheus-operator/compare/v0.92.1...v0.93.0)

Updates `github.com/prometheus-operator/prometheus-operator/pkg/client` from 0.92.1 to 0.93.0
- [Release notes](https://github.com/prometheus-operator/prometheus-operator/releases)
- [Changelog](https://github.com/prometheus-operator/prometheus-operator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prometheus-operator/prometheus-operator/compare/v0.92.1...v0.93.0)

---
updated-dependencies:
- dependency-name: github.com/aws/aws-sdk-go-v2
  dependency-version: 1.43.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/config
  dependency-version: 1.32.33
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/credentials
  dependency-version: 1.19.32
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/s3
  dependency-version: 1.106.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/aws-sdk-go-v2/service/sns
  dependency-version: 1.42.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/aws/smithy-go
  dependency-version: 1.27.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: github-dependencies
- dependency-name: github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring
  dependency-version: 0.93.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
- dependency-name: github.com/prometheus-operator/prometheus-operator/pkg/client
  dependency-version: 0.93.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: github-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 12:49:33 +00:00
dependabot[bot] 5475e28c85 build(deps): bump docker/login-action from 4.5.1 to 4.6.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 4.5.1 to 4.6.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/abd2ef45e78c5afb21d64d4ca52ee8550d9572c7...dbcb813823bdd20940b903addbd779551569679f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 4.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 12:44:54 +00:00
dependabot[bot] f4a4b7b11c build(deps): bump actions/stale from 10.4.0 to 11.0.0
Bumps [actions/stale](https://github.com/actions/stale) from 10.4.0 to 11.0.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/1e223db275d687790206a7acac4d1a11bd6fe629...4391f3da665fdf50b6810c1a66712fb9ba21aa93)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: 11.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 12:44:39 +00:00
dependabot[bot] ab91f7018b build(deps): bump github/codeql-action/upload-sarif
Bumps [github/codeql-action/upload-sarif](https://github.com/github/codeql-action) from 4.37.3 to 4.37.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/e4fba868fa4b1b91e1fdab776edc8cfbe6e9fb81...f205ea1c3313d32999d8d6a48b4f6530d4437b38)

---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
  dependency-version: 4.37.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-08-03 12:44:27 +00:00
Travis Nielsen 5238f377f2 Merge pull request #18054 from travisn/roadmap-1.21
docs: Update roadmap with high level 1.21 features
2026-07-31 12:18:08 -06:00
Travis Nielsen 9b093c2ecb docs: update roadmap with high level 1.21 features
For the upcoming 1.21 release, document the high level
features that are coming soon.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2026-07-31 12:08:23 -06:00
Blaine Gardner 472c4f3f92 Merge pull request #18010 from jhoblitt/ss-17970
object: return an error when the multisite zone is not found
2026-07-30 13:50:40 -06:00
Travis Nielsen dc7a18354d Merge pull request #18069 from jhoblitt/release-tag-validate
build: validate the release version before tagging and publishing
2026-07-29 15:59:23 -06:00
Blaine Gardner 908816c09b Merge pull request #18038 from parth-gr/offboard-accounts
rgw: force delete the rgw accounts by looking at the force annotation
2026-07-29 13:55:04 -06:00
Joshua Hoblitt 09ce9e26cc osd: list prepared devices individually when missing from raw list
The prepare job runs "ceph-volume raw prepare" per device and then trusts
a no-argument "ceph-volume raw list" to report the OSDs it just created.
That listing can come back without a freshly prepared device. On Ceph
v20.2.0 and v20.2.1, get_devices() enumerates through udev data under
/run/udev/data and returns nothing when that data is empty or not yet
populated (https://tracker.ceph.com/issues/77968). On every released
v20.2.x, a block device smaller than 4KiB in the scan, such as the 1KiB
extended-partition node of an MBR-partitioned OS disk, crashes the
batched ceph-bluestore-tool call behind the listing, which ceph-volume
reports as an empty result (https://tracker.ceph.com/issues/76354).
Either way the no-argument list comes back empty or incomplete even
though the OSD exists. Rook then silently reported fewer OSDs than it
prepared, the operator never created the missing OSD deployment, and the
cluster was left with OSDs in the osdmap but no daemons running.

Verify that every device prepared in raw mode is present in the listing.
For any that is missing, list it by name ("ceph-volume raw list
<device>"), which is immune to both failure modes and reports the OSD.
If even the per-device listing is empty, return an error so the prepare
job exits non-zero and Kubernetes restarts it with a freshly re-scanned
environment, rather than silently under-reporting the OSDs.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-29 12:38:00 -07:00
Joshua Hoblitt 8cf8f5d73a Merge pull request #18056 from jhoblitt/helm-chart-unittest
helm: add helm-unittest harness for the charts
2026-07-29 12:15:32 -07:00
Travis Nielsen d1a92df02b Merge pull request #17953 from cobaltcore-dev/osd-replacement-2-6
Osd replacement impl
2026-07-29 12:03:23 -06:00
Joshua Hoblitt fa89038264 helm: add helm-unittest harness for the charts
The charts have no unit tests. CI runs ct lint plus a helm template and
kustomize build, which prove the charts render but never assert what
they render, so conditional template logic goes unverified.

Add helm-unittest, pinned and installed as a standalone binary, a
test.helm make target, and a Helm Unittests workflow that runs it. The
first suite covers the toolbox deployment: the image composed from the
toolbox and cephImage settings, the precedence of both over the older
toolbox.image setting, the hostNetwork branch driven by the cluster
network provider, and the revisionHistoryLimit guard.

The new job is a required check in .mergify.yml, alongside the existing
chart linting.

Suites live under tests/ in a chart and are excluded from the packaged
chart via .helmignore. The runner is invoked with --strict so that a
misspelled key fails the suite instead of silently rendering defaults.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-29 10:40:43 -07:00
Travis Nielsen ac0c3b45bc Merge pull request #18057 from taraasrita10/add-watcher-svg
external: add watcher to the svg controller for watching csi and clie…
2026-07-29 11:05:08 -06:00
Blaine Gardner db49154b8d Merge pull request #18012 from jhoblitt/ss-17964
core: fix data race reading exec output on timeout
2026-07-29 09:31:19 -06:00
Travis Nielsen 6ed2f6d535 Merge pull request #18070 from travisn/mergify-auto
ci: Update mergify rules to auto-merge based on K8s 1.36 test match
2026-07-29 08:17:51 -06:00
Artem Torubarov c9b1bfa805 osd: use a separate annotation to fence osd replacement instead of existing label
osd-replacement was relying on exising ceph.rook.io/do-not-reconcile
label for fencing osd destroy process owned by osd health goroutine from
controller. However, this label can be used but other components like
rook krew maintenance plugin and cannot be owned by osd-replacement
process. Added a separate osd.rook.io/replace-in-progress annotation for
that purpose.

Signed-off-by: Artem Torubarov <artem.torubarov@sap.com>
2026-07-29 11:03:29 +02:00
parth-gr d6a0e9fd87 rgw: force delete the rgw accounts by looking at the force annotation
if the account cr has a force delete annotation, forcefully
remove the account, even if it contatins data in it, using the
purge data flag

Signed-off-by: parth-gr <partharora1010@gmail.com>
2026-07-29 13:03:06 +05:30
Travis Nielsen 96f1598715 ci: update mergify rules for k8s 1.36 tests
The release-1.20 branch is running the tests on K8s 1.36.1. Update
the mergify auto-merge rules to match on this version instead
of the previous version 1.35 that was being run.

Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
2026-07-28 15:01:28 -06:00
Joshua Hoblitt adda6b17d3 build: validate the release version before tagging and publishing
Nothing verified that the commit being tagged for a release actually
carries the intended version. Tagging a release branch before the version
update PR is merged publishes images and manifests that reference the
previous release. Add build/release/validate-tag.sh to check that the tree
is clean and that deploy/examples/images.txt and the helm chart values
match the tag, run it from the release build workflow before any artifact
is published, and document it in the tagging steps. Alpha tags are exempt
as they only mark the creation of a release branch.

Signed-off-by: Joshua Hoblitt <josh@hoblitt.com>
2026-07-28 13:47:54 -07:00
Travis Nielsen 6ed8f3efcd Merge pull request #18028 from taraasrita10/support_EC_with_MSR
pool: support CRUSH MSR rules for EC pools
2026-07-28 13:45:02 -06:00
Joshua Hoblitt 770a80efe0 Merge pull request #17904 from jhoblitt/build-retry-docs-publish
build: retry the docs deploy when the gh-pages push is rejected
2026-07-28 11:43:10 -07:00
Travis Nielsen 2bfee41b0b Merge pull request #18063 from malayparida2000/fix/modcheck-error-message
ci: fix mod.check validation error message
2026-07-28 12:30:37 -06:00
Malay Kumar Parida 408dfdebd2 ci: fix mod.check validation error message
Advise running make mod.check and committing results instead of make clean.

Signed-off-by: Malay Kumar Parida <mparida@redhat.com>
2026-07-28 23:35:10 +05:30
Travis Nielsen c40d428ffb Merge pull request #18042 from jhoblitt/helm-toolbox-repository-tag
helm: add toolbox repository and tag settings
2026-07-28 11:12:48 -06:00