Installation Manual - 77 Hub audit log forwarding implementation

Implementation record for hub-dc-v7 audit-only log forwarding with OpenShift Logging, Loki, MinIO, Vault R1, and External Secrets.

This chapter records the hub-dc-v7 audit-log-forwarding implementation gate.

The gate installed a hub-specific, audit-only logging path. It did not copy the spoke NooBaa-backed full logging pattern and did not reuse OADP object-storage credentials.

Governance

FieldValue
IssueOP-GF-COMPLIANCE-6 / #398
MilestoneWorkspace Governance
Governing ADRADR 0016
PredecessorOP-GF-COMPLIANCE-5 / #397

Preflight

Fresh checks used the established path:

local workspace -> dl385-2 -> gf-ocp-bootstrap-01 -> hub-dc-v7 kubeconfig

Starting state:

CheckResult
OpenShift4.20.18
ClusterVersionAvailable, not Progressing, not Failing
Nodes3/3 Ready
ClusterOperatorssteady
MachineConfigPoolssteady
Hub Argo CDSynced/Healthy at 92198cc
APIServer audit profileWriteRequestBodies
ocp4-cis-audit-log-forwarding-enabledFAIL
Hub ocp4-cis countsPASS=160, FAIL=2, MANUAL=21
Hub logging stackabsent
StorageClasslvms-vg1
LVMClusterReady

The disconnected catalog had the required packages:

PackageSourceVersion
cluster-loggingcs-redhat-operator-index-v4-20cluster-logging.v6.5.0
loki-operatorcs-redhat-operator-index-v4-20loki-operator.v6.5.0

MinIO And Vault R1

Dedicated hub Loki object storage was created:

ItemValue
Bucketloki-hub-dc-v7
Userloki-hub-dc-v7
Policyloki-hub-dc-v7-rw
Probeput/stat/delete passed

The credential was stored in Vault R1:

ItemValue
Vault pathsecret/greenfield/object-storage/minio/users/loki-hub-dc-v7
Vault policyhub-dc-v7-logging-loki
Vault rolelogging-loki
Bound service accountopenshift-logging/logging-vault-auth

The local custody copy is intentionally ignored by Git:

secrets/greenfield-vault-r1/loki-hub-dc-v7-minio-credentials.json

Do not paste, commit, or print values from that file.

GitOps Desired State

Platform GitOps commit:

d6688ad Add hub audit log forwarding

Added hub operator desired state:

clusters/hub-dc-v7/operators/cluster-logging/
clusters/hub-dc-v7/operators/loki-operator/

Added hub logging desired state:

clusters/hub-dc-v7/platform/logging/

The logging layer contains:

ResourcePurpose
ServiceAccount/logging-vault-authVault Kubernetes auth identity
ClusterSecretStore/vault-r1-loggingDedicated Vault R1 store for Loki
ExternalSecret/logging-loki-s3Projects the MinIO credential into openshift-logging
LokiStack/logging-lokiSmall hub Loki stack using lvms-vg1
ServiceAccount/logging-collectorVector collector identity
collector RBACcollect-audit-logs and logging-collector-logs-writer
ClusterLogForwarder/instanceAudit-only forwarding to Loki

The bootstrap clone was fast-forwarded and Application/hub-dc-v7-bootstrap reconciled Synced/Healthy at d6688ad.

Validation

CheckResult
cluster-logging.v6.5.0 CSVSucceeded
loki-operator.v6.5.0 CSVSucceeded
ClusterSecretStore/vault-r1-loggingReady=True, Valid
ExternalSecret/logging-loki-s3Ready=True, SecretSynced
Secret/logging-loki-s3 keysexpected S3 key names only
LokiStack/logging-lokiReady=True, ReadyComponents
ClusterLogForwarder/instanceReady=True, ReconciliationComplete
openshift-logging pods18/18 Running
collector DaemonSet3/3
Loki PVCs9 Bound on lvms-vg1

Final hub health stayed steady:

CheckResult
OpenShift4.20.18
ClusterVersionAvailable, not Progressing, not Failing
Nodes3/3 Ready
ClusterOperatorssteady
MachineConfigPoolssteady

Compliance Result

A one-off hub ocp4-cis rescan ran:

FieldValue
Trigger2026-05-19T11:07:31Z
Start2026-05-19T11:07:32Z
End2026-05-19T11:08:17Z
PhaseDONE
ResultNON-COMPLIANT

The target finding cleared:

CheckStatus
ocp4-cis-audit-log-forwarding-enabledPASS
ocp4-cis-configure-network-policies-namespacesFAIL

New hub counts:

StatusCount
PASS161
FAIL1
MANUAL21

Object Store Note

An immediate bucket listing with the dedicated Loki credential still showed zero objects in loki-hub-dc-v7. Loki was Ready and the CIS audit-forwarding check passed. Recheck later if explicit object-flush evidence is needed; object creation can wait until Loki flushes chunks or index content.

Next Gate

The only remaining hub CIS failure is:

ocp4-cis-configure-network-policies-namespaces

Run the next gate as a classification first:

OP-GF-COMPLIANCE-7: classify hub NetworkPolicy namespace coverage

Do not bulk-apply NetworkPolicies before classifying namespace ownership and operator expectations.

Last reviewed: 2026-05-19