You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
// AuditFileStorageConfig configures the shared filesystem integration point for file audit devices.
254
+
//
255
+
// The operator mounts the selected PVC into each OpenBao Pod. Each Pod uses a
256
+
// pod-specific subPath under the same PVC so all Pods can render the same audit
257
+
// file path while collectors can mount the PVC read-only and read per-Pod audit
258
+
// files from the backing directories. This storage is intended as a collector
259
+
// handoff and replay buffer, not as the authoritative compliance archive.
260
+
// +kubebuilder:validation:XValidation:rule="self.mode != 'ManagedPVC' || !has(self.existingClaimName) || size(self.existingClaimName) == 0",message="auditFileStorage.existingClaimName is only supported when mode is ExistingPVC"
261
+
// +kubebuilder:validation:XValidation:rule="self.mode != 'ExistingPVC' || size(self.existingClaimName) > 0",message="auditFileStorage.existingClaimName is required when mode is ExistingPVC"
262
+
// +kubebuilder:validation:XValidation:rule="self.mode != 'ExistingPVC' || !has(self.size) || size(self.size) == 0",message="auditFileStorage.size is only supported when mode is ManagedPVC"
263
+
// +kubebuilder:validation:XValidation:rule="self.mode != 'ExistingPVC' || !has(self.storageClassName) || size(self.storageClassName) == 0",message="auditFileStorage.storageClassName is only supported when mode is ManagedPVC"
264
+
// +kubebuilder:validation:XValidation:rule="self.mode != 'ManagedPVC' || size(self.size) > 0",message="auditFileStorage.size is required when mode is ManagedPVC"
265
+
// +kubebuilder:validation:XValidation:rule="!has(self.mountPath) || (self.mountPath.startsWith('/') && self.mountPath != '/')",message="auditFileStorage.mountPath must be an absolute path and must not be /"
266
+
typeAuditFileStorageConfigstruct {
267
+
// Mode selects whether the operator creates a dedicated RWX PVC or mounts an existing one.
268
+
ModeAuditFileStorageMode`json:"mode"`
269
+
// ExistingClaimName is the name of a pre-created RWX PVC in the same namespace.
Copy file name to clipboardExpand all lines: docs/architecture/operator-invariants.md
+10-3Lines changed: 10 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -153,12 +153,19 @@ Related reading: <SiteLink docId="security/fundamentals/profiles">Security Profi
153
153
rows={[
154
154
{
155
155
cells: [
156
-
'Gateway, ACME, and API-server assumptions surface as explicit conditions.',
156
+
'Gateway, ACME, audit storage, and API-server assumptions surface as explicit conditions.',
157
157
'Environment and controller dependencies should become visible status contracts before they become runtime failures.',
158
-
'`GatewayIntegrationReady`, `ACMEIntegrationReady`, `ACMECacheReady`, and `APIServerNetworkReady` conditions.',
158
+
'`GatewayIntegrationReady`, `ACMEIntegrationReady`, `ACMECacheReady`, `AuditFileStorageReady`, and `APIServerNetworkReady` conditions.',
159
159
],
160
160
emphasis: 'recommended',
161
161
},
162
+
{
163
+
cells: [
164
+
'Audit file storage stays an explicit integration point.',
165
+
'The operator can mount and validate the handoff PVC, but retention, tamper resistance, and collection pipelines belong to the surrounding platform.',
166
+
'`spec.auditFileStorage`, `spec.audit`, status readiness, and workload mount guardrails.',
167
+
],
168
+
},
162
169
{
163
170
cells: [
164
171
'Backup and restore identity stays separate from the main workload identity.',
@@ -169,7 +176,7 @@ Related reading: <SiteLink docId="security/fundamentals/profiles">Security Profi
169
176
]}
170
177
/>
171
178
172
-
Related reading: <SiteLinkdocId="reference/status-and-events">Status and Events</SiteLink> and <SiteLinkdocId="user-guide/openbaocluster/operations/backups">Configure Backups</SiteLink>.
179
+
Related reading: <SiteLinkdocId="reference/status-and-events">Status and Events</SiteLink>, <SiteLinkdocId="user-guide/openbaocluster/configuration/observability">Observability</SiteLink>, and <SiteLinkdocId="user-guide/openbaocluster/operations/backups">Configure Backups</SiteLink>.
Copy file name to clipboardExpand all lines: docs/architecture/workload-managers.md
+3-1Lines changed: 3 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -113,7 +113,7 @@ This keeps change-coupling lower: config rendering, service exposure, ServiceAcc
113
113
columns={['Manager', 'Owns', 'Primary writes', 'Why it stays separate']}
114
114
rows={[
115
115
{
116
-
cells: ['Bootstrap manager', 'Rendered config, self-init surfaces, unseal prerequisites, and related validation.', 'ConfigMap surfaces, static unseal Secret when applicable, self-init ConfigMap, and shared-cache PVC setup.', 'Config and bootstrap prerequisites change for different reasons than networking or StatefulSet lifecycle.'],
116
+
cells: ['Bootstrap manager', 'Rendered config, self-init surfaces, unseal prerequisites, and related validation.', 'ConfigMap surfaces, static unseal Secret when applicable, self-init ConfigMap, shared-cache PVC setup, and managed audit file storage PVC setup.', 'Config and bootstrap prerequisites change for different reasons than networking or StatefulSet lifecycle.'],
117
117
emphasis: 'recommended',
118
118
},
119
119
{
@@ -139,6 +139,7 @@ The bootstrap manager prepares everything the workload needs before the Stateful
139
139
- generate the static unseal Secret when that seal mode is selected
140
140
- validate unseal prerequisites and related secret references
141
141
- prepare ACME shared-cache storage when that mode requires it
142
+
- prepare managed audit file storage PVCs when file audit handoff storage is configured
142
143
143
144
### Networking manager
144
145
@@ -166,6 +167,7 @@ The workload manager owns the StatefulSet-facing contract:
166
167
- steady-state read-replica StatefulSet lifecycle and safe drain or delete behavior
167
168
- PodDisruptionBudget reconciliation
168
169
- rollout triggers from rendered config or certificate hash changes
170
+
- audit file storage volume and mount wiring for voter and read-replica StatefulSets
169
171
- single-replica bootstrap and later scale-out after initialization
170
172
- revision-scoped workload resources used by blue/green and rollout-safe updates
171
173
- read-first or restore-safe operational ordering delegated by the app layer for rolling upgrades, blue-green, and restore
0 commit comments