apiVersion: "helm-expt.confighub.com/v1alpha1"
kind: "GitOpsRuntimeReview"
metadata:
  name: "prometheus-default-argocd-statefulset-sync"
  chart: "prometheus-community/prometheus"
  version: "29.8.0"
spec:
  base: "default"
  controller: "Argo CD"
  targetShape: "cub-managed kind proof cluster with ConfigHub OCI source"
  receipt: "runs/live-helm-confighub-compare/prometheus-community-prometheus-default/receipt.yaml"
  observedResult: "pass"
  passed:
    - "regular Helm live leg reached the expected runtime state"
    - "ConfigHub direct-apply leg reached the expected runtime state"
    - "ConfigHub OCI/Argo leg reached the expected workload runtime state"
    - "ConfigHub OCI/Argo Application reached Synced/Healthy"
    - "Helm-vs-ConfigHub semantic parity passed for the OCI/Argo leg"
    - "Prometheus server Deployment, Alertmanager StatefulSet, node-exporter DaemonSet, kube-state-metrics Deployment, and pushgateway Deployment became ready"
  gitOpsCondition:
    sync: "Synced"
    health: "Healthy"
    canonicalizationProfile: "k8s-zero-defaults"
  diagnosis:
    summary: "The desired OCI artifact materializes Kubernetes StatefulSet defaults that Argo otherwise reports as drift after server-side apply."
    materializedDefaultedFields:
      - "spec.minReadySeconds=0 removed because the API omits the zero value"
      - "spec.persistentVolumeClaimRetentionPolicy"
      - "spec.podManagementPolicy"
      - "spec.updateStrategy"
      - "spec.template.spec.restartPolicy"
      - "spec.template.spec.dnsPolicy"
      - "spec.template.spec.schedulerName"
      - "spec.template.spec.terminationGracePeriodSeconds"
      - "container probe defaults such as failureThreshold, periodSeconds, successThreshold, timeoutSeconds, and scheme"
      - "volume configMap.defaultMode"
      - "volumeClaimTemplates apiVersion/kind/status/volumeMode defaults"
    interpretation: "This is GitOps/runtime canonicalization for Kubernetes API defaults. Semantic parity remains checked against the Helm render and passed for both direct apply and OCI/Argo."
  nextActions:
    - "Keep the canonicalization profile opt-in and receipt-bound for StatefulSet-heavy GitOps rows."
    - "Apply the same profile only when a live receipt proves the target chart needs Kubernetes default materialization."
    - "Record separate production decisions for Prometheus storage, retention, HA, backup, and alert-routing policy before claiming production support."
  notClaimed:
    - "This review does not prove production Prometheus storage, retention, HA, backup, or alert routing policy."
    - "This review does not generalize to every StatefulSet chart without a matching live receipt."
