Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -86,13 +86,15 @@ parts:
ignore-unspecified-fields: true
- path: required/acm/observabilityNS.yaml
- path: required/acm/observabilityOBC.yaml
- path: required/acm/observabilityMCSB.yaml
- path: required/acm/observabilityRoutePlacement.yaml
- path: required/acm/observabilityRoutePlacementBinding.yaml
config:
ignore-unspecified-fields: true

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Verify ignore-unspecified-fields now attaches to observabilityRoutePlacementBinding.yaml.

The config: block at lines 92-93 is a sibling of path: on the last list item, so it now applies to observabilityRoutePlacementBinding.yaml (line 91) rather than to whatever path previously occupied that slot (likely the removed pullSecretMCSB.yaml or observabilityOBC.yaml). If the intent was to keep ignore-unspecified-fields on a specific resource (e.g., observabilityMCSB.yaml), this needs to move; if the binding genuinely has unspecified fields to ignore in the live cluster, leaving it here is fine — please confirm.

Possible fix if the config was intended for observabilityMCSB
           - path: required/acm/observabilityMCSB.yaml
+            config:
+              ignore-unspecified-fields: true
           - path: required/acm/observabilityRoutePlacement.yaml
           - path: required/acm/observabilityRoutePlacementBinding.yaml
-            config:
-              ignore-unspecified-fields: true
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- path: required/acm/observabilityMCSB.yaml
- path: required/acm/observabilityRoutePlacement.yaml
- path: required/acm/observabilityRoutePlacementBinding.yaml
config:
ignore-unspecified-fields: true
- path: required/acm/observabilityMCSB.yaml
config:
ignore-unspecified-fields: true
- path: required/acm/observabilityRoutePlacement.yaml
- path: required/acm/observabilityRoutePlacementBinding.yaml
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@telco-hub/configuration/reference-crs-kube-compare/metadata.yaml` around
lines 89 - 93, The config block is currently attached to
required/acm/observabilityRoutePlacementBinding.yaml but if the intent was to
keep ignore-unspecified-fields on required/acm/observabilityMCSB.yaml move the
config mapping so it is a sibling of the observabilityMCSB path entry (i.e.,
place "config: ignore-unspecified-fields: true" directly under the
required/acm/observabilityMCSB.yaml list item); if instead the binding truly
needs unspecified fields ignored, leave the config where it is and add a brief
comment confirming that required/acm/observabilityRoutePlacementBinding.yaml
should ignore unspecified fields.

- path: required/acm/observabilitySecret.yaml
- path: required/acm/pullSecretPolicy.yaml
- path: required/acm/pullSecretPlacement.yaml
- path: required/acm/pullSecretPlacementBinding.yaml
- path: required/acm/pullSecretMCSB.yaml
- path: required/acm/thanosSecretPolicy.yaml
config:
ignore-unspecified-fields: true
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
name: obs-route-policy-placement
namespace: open-cluster-management-observability
annotations:
argocd.argoproj.io/sync-wave: "-25"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
spec:
predicates:
- requiredClusterSelector:
labelSelector:
matchExpressions:
- key: local-cluster
operator: In
values:
- "true"
tolerations:
- key: cluster.open-cluster-management.io/unavailable
operator: Exists
- key: cluster.open-cluster-management.io/unreachable
operator: Exists
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: obs-route-policy-placementbinding
namespace: open-cluster-management-observability
annotations:
argocd.argoproj.io/sync-wave: "-25"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
placementRef:
name: obs-route-policy-placement
kind: Placement
apiGroup: cluster.open-cluster-management.io
subjects:
- name: obs-route-policy
kind: Policy
apiGroup: policy.open-cluster-management.io
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ resources:
- acmProvisioning.yaml
- observabilityNS.yaml
- observabilityOBC.yaml
- observabilityRoutePolicy.yaml
- observabilityRoutePlacement.yaml
- observabilityRoutePlacementBinding.yaml
- thanosSecretPolicy.yaml
- thanosSecretPlacement.yaml
- thanosSecretPlacementBinding.yaml
# - observabilitySecret.yaml
- pullSecretPolicy.yaml
- pullSecretPlacement.yaml
- pullSecretPlacementBinding.yaml
- pullSecretMCSB.yaml
- observabilityMCSB.yaml

- observabilityMCO.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
name: obs-route-policy-placement
namespace: open-cluster-management-observability
annotations:
argocd.argoproj.io/sync-wave: "-25"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
spec:
predicates:
- requiredClusterSelector:
labelSelector:
matchExpressions:
- key: local-cluster
operator: In
values:
- "true"
tolerations:
- key: cluster.open-cluster-management.io/unavailable
operator: Exists
- key: cluster.open-cluster-management.io/unreachable
operator: Exists
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: obs-route-policy-placementbinding
namespace: open-cluster-management-observability
annotations:
argocd.argoproj.io/sync-wave: "-25"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
placementRef:
name: obs-route-policy-placement
kind: Placement
apiGroup: cluster.open-cluster-management.io
subjects:
- name: obs-route-policy
kind: Policy
apiGroup: policy.open-cluster-management.io
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ metadata:
policy.open-cluster-management.io/categories: CM Configuration Management
policy.open-cluster-management.io/controls: CM-2 Baseline Configuration
policy.open-cluster-management.io/standards: NIST SP 800-53
argocd.argoproj.io/sync-wave: "-25"
argocd.argoproj.io/sync-options: SkipDryRunOnMissingResource=true
ran.openshift.io/ztp-deploy-wave: "1"
name: obs-route-policy
namespace: open-cluster-management-observability
Expand Down Expand Up @@ -41,45 +43,3 @@ spec:
acm-alertmanager-route: '{{ (lookup "route.openshift.io/v1" "Route" "open-cluster-management-observability" "alertmanager").spec.host }}'
acm-hub-cluster-id: '{{ $hubID }}'
{{- end }}
---
apiVersion: cluster.open-cluster-management.io/v1beta1
kind: Placement
metadata:
name: obs-route-policy-placement
namespace: open-cluster-management-observability
spec:
predicates:
- requiredClusterSelector:
labelSelector:
matchExpressions:
- key: local-cluster
operator: In
values:
- "true"
tolerations:
- key: cluster.open-cluster-management.io/unavailable
operator: Exists
- key: cluster.open-cluster-management.io/unreachable
operator: Exists
---
apiVersion: policy.open-cluster-management.io/v1
kind: PlacementBinding
metadata:
name: obs-route-policy-placementbinding
namespace: open-cluster-management-observability
placementRef:
name: obs-route-policy-placement
kind: Placement
apiGroup: cluster.open-cluster-management.io
subjects:
- name: obs-route-policy
kind: Policy
apiGroup: policy.open-cluster-management.io
---
apiVersion: cluster.open-cluster-management.io/v1beta2
kind: ManagedClusterSetBinding
metadata:
name: default
namespace: open-cluster-management-observability
spec:
clusterSet: default