Conversation
Member
Author
GatewayJ
force-pushed
the
feat/oidc-extra-ca
branch
from
September 18, 2026 05:59
f96fcc2 to
1327a34
Compare
Member
Author
1 similar comment
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of Change
Related Issues
Fixes #256
Summary of Changes
spec.oidc.extraCaCertSecretReffor a namespaced Secret key containingthe PEM CA bundle used by RustFS outbound OIDC HTTPS.
applying workloads; report actionable
OidcTrustReadyconditions.subPath, setRUSTFS_EXTRA_CA_CERT, and index the Secret reference for reconciliation.spec.additionalVolumesandspec.additionalVolumeMountsfor arbitrary files required by the RustFScontainer in every Pool.
..components, equivalent paths, and parent/child overlap with operator-managed
data, logging, TLS, and OIDC mounts.
StatefulSet Pod template, avoiding rollouts caused only by YAML list order.
e2e defaults from
rustfs/rustfs:1.0.0-beta.10torustfs/rustfs:1.0.0.OidcTrustReadyand the combined-root CA rotationprocedure in English and Chinese.
Checklist
make pre-commit(fmt-check + clippy + test + console-lint + console-fmt-check)[Unreleased](if user-visible change)Impact
Both new Tenant fields are optional and serialize only when configured.
Existing Tenant YAML, StatefulSet selectors, PVC templates, and Service
selectors remain structurally compatible when the fields are absent.
The pinned fallback image changes to
rustfs/rustfs:1.0.0. A Tenant that omitsboth
spec.imageand the OperatorTENANT_RUSTFS_IMAGEoverride will receive anormal StatefulSet rolling update on its next reconciliation. Tenants with an
explicit image or Operator-level image override are unchanged.
Changing an additional Volume or VolumeMount changes the StatefulSet Pod
template and starts a normal rolling update. Secret and ConfigMap content
updates are projected by Kubernetes without changing the Pod template; users
should avoid
subPathwhen they require projected updates in running Pods.The implementation targets RustFS GA and later images. The Operator does not
perform runtime image capability detection.
Verification
Results:
rustfs/rustfs:1.0.0image manifest is available.Additional Notes
RUSTFS_EXTRA_CA_CERTis wired through the managed OIDC Secret pathand remains available through
spec.envplus the general Volume fields forcustom composition.
OidcTrustReady=Trueconfirms that the configured Secret bundle passed thelatest Operator validation. Kubernetes projects Secret updates independently
to each Pod, so CA replacement uses a combined old-plus-new root bundle until
every Pod and the OIDC provider complete the transition.
field alongside Kubernetes-native additional Volumes and VolumeMounts. One
Volume may be mounted at multiple paths; equal list lengths are not required.
policy. The Operator validates only composition rules it owns.
overlap, exact managed paths, and similarly named sibling paths were tested.
local to workload composition, with no generic resource watcher or image
capability subsystem.
references and collisions, stable ordering, update detection, status, default
image rendering, and generated CRD parity are covered.
mounts are read-only, traversal is rejected, and additional mounts cannot
replace operator-managed files or directories.
additive, existing YAML remains valid, explicit images remain unchanged, and
only fallback-image Tenants roll to the requested GA default.
Operator and CRD. Existing PVCs and stored objects are unaffected.
Thank you for your contribution! Please ensure your PR follows the community standards (CODE_OF_CONDUCT.md) and sign the CLA if this is your first contribution.