apiVersion: helm-expt.confighub.com/v1alpha1
kind: LiveHelmConfigHubParityReceipt
metadata:
  name: prometheus-community-prometheus-29.8.0-default-live-parity-20260605
spec:
  chart: prometheus-community/prometheus
  version: 29.8.0
  base: default
  result: pass
  observedAt: '2026-06-12T16:46:41Z'
  package:
    path: packages/prometheus-community/prometheus/29.8.0
  recipe:
    path: recipes/prometheus-community/prometheus/29.8.0
  variantRevision: recipes/prometheus-community/prometheus/29.8.0/revisions/default/r001/variant-revision.yaml
  targetProfile:
    name: none
    result: pass
    resources: []
  gitOpsCanonicalizationProfile:
    name: k8s-zero-defaults
    result: pass
    changes:
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      removed spec.minReadySeconds=0'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.persistentVolumeClaimRetentionPolicy=Retain/Retain'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.podManagementPolicy=OrderedReady'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.updateStrategy RollingUpdate defaults'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.restartPolicy=Always'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.dnsPolicy=ClusterFirst'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.schedulerName=default-scheduler'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.terminationGracePeriodSeconds=30'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      spec.template.spec.serviceAccount=serviceAccountName'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].terminationMessagePath
      default'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].terminationMessagePolicy
      default'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].livenessProbe.failureThreshold=3'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].livenessProbe.periodSeconds=10'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].livenessProbe.successThreshold=1'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].livenessProbe.timeoutSeconds=1'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].livenessProbe.httpGet.scheme=HTTP'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].readinessProbe.failureThreshold=3'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].readinessProbe.periodSeconds=10'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].readinessProbe.successThreshold=1'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].readinessProbe.timeoutSeconds=1'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.containers[alertmanager].readinessProbe.httpGet.scheme=HTTP'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.template.spec.volumes[config].configMap.defaultMode=420'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.volumeClaimTemplates[storage].apiVersion=v1'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.volumeClaimTemplates[storage].kind=PersistentVolumeClaim'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.volumeClaimTemplates[storage].status.phase=Pending'
    - 'statefulset-monitoring-oci-prometheus-alertmanager.yaml: StatefulSet/prometheus-alertmanager:
      materialized spec.volumeClaimTemplates[storage].spec.volumeMode=Filesystem'
    rationale: Normalize Kubernetes API zero/default fields before publishing the OCI
      GitOps artifact; semantic parity remains checked against Helm.
    receipt: $HOME/code/helm-expt/runs/live-helm-confighub-compare/prometheus-community-prometheus-default/gitops-canonicalization-k8s-zero-defaults.yaml
  run:
    rig: helm-expt-parity-prometheus-mqb5sea2-zys
    kubeContext: kind-helm-expt-parity-prometheus-mqb5sea2-zys
    namespace: monitoring
    legNamespaces:
      regularHelm: monitoring-helm
      configHubKubectlApply: monitoring-apply
      configHubOciArgo: monitoring-oci
    clusterLifecycle: cleaned-up
    cleanup:
      command: cub lk down --name helm-expt-parity-prometheus-mqb5sea2-zys --force
      result: pass
      detail: 'Deleting kind cluster "helm-expt-parity-prometheus-mqb5sea2-zys"...

        Deleting cluster "helm-expt-parity-prometheus-mqb5sea2-zys" ...

        Deleted nodes: ["helm-expt-parity-prometheus-mqb5sea2-zys-control-plane"]

        Deleting Space "helm-expt-parity-prometheus-mqb5sea2-zys-cluster" (recursive:
        cascades to Unit, Target, Worker)...


        Done.'
  legs:
    regularHelm:
      result: pass
      command: helm upgrade --install prometheus prometheus --repo https://prometheus-community.github.io/helm-charts
        --version 29.8.0 --namespace monitoring-helm --create-namespace --values $HOME/code/helm-expt/runs/live-helm-confighub-compare/prometheus-community-prometheus-default/regular-helm-values.yaml
        --wait --timeout 8m
      manifestSHA256: c11349803ddbb44562066474dd04d47d7c5c75d083dbc96162224573f949c11b
      objectCount: 23
      liveHelmManifestSHA256: 2a74f2b3882f3af19a7cae808e8587abc6b3bc1155dbabe949740cf74488f3b0
      liveHelmManifestObjectCount: 23
      namespace: monitoring-helm
      runtime:
        result: pass
        workloads: 'deployment.apps/prometheus-kube-state-metrics       1/1   1     1     71s

          deployment.apps/prometheus-prometheus-pushgateway   1/1   1     1     71s

          deployment.apps/prometheus-server                   1/1   1     1     71s

          statefulset.apps/prometheus-alertmanager   1/1   71s

          daemonset.apps/prometheus-prometheus-node-exporter   1     1     1     1     1     kubernetes.io/os=linux   71s'
        pods: 'prometheus-alertmanager-0                            1/1   Running   0     71s

          prometheus-kube-state-metrics-68ff7c5cc5-mrpdw       1/1   Running   0     71s

          prometheus-prometheus-node-exporter-w7fzb            1/1   Running   0     71s

          prometheus-prometheus-pushgateway-75b8bf7c77-f7bgp   1/1   Running   0     71s

          prometheus-server-84f77dc9fd-xtvg5                   2/2   Running   0     71s'
        notReady: []
      stderr: ''
      getManifestError: ''
    configHubKubectlApply:
      result: pass
      renderCommand: cub installer setup --pull $HOME/code/helm-expt/packages/prometheus-community/prometheus/29.8.0
        --base default --work-dir /tmp/helm-expt-live-parity-helm-expt-parity-prometheus-mqb5sea2-zys-prometheus
        --non-interactive --namespace monitoring-apply
      applyMode: namespace-first kubectl apply; separated secrets staged when present
      manifestSHA256: df517a995d9373f542b99f303c899579c55653b11ea1ff87eafa957f35a059a4
      objectCount: 24
      namespace: monitoring-apply
      manifestNamespaces:
      - monitoring-apply
      runtimeNamespaces: &id001
      - monitoring-apply
      runtime:
        result: pass
        namespaces: *id001
        workloads: '# monitoring-apply

          deployment.apps/prometheus-kube-state-metrics       1/1   1     1     41s

          deployment.apps/prometheus-prometheus-pushgateway   1/1   1     1     41s

          deployment.apps/prometheus-server                   1/1   1     1     41s

          statefulset.apps/prometheus-alertmanager   1/1   41s

          daemonset.apps/prometheus-prometheus-node-exporter   1     1     1     1     1     kubernetes.io/os=linux   41s'
        pods: '# monitoring-apply

          prometheus-alertmanager-0                            1/1   Running   0     41s

          prometheus-kube-state-metrics-68ff7c5cc5-vmdj6       1/1   Running   0     41s

          prometheus-prometheus-node-exporter-6kr76            1/1   Running   0     41s

          prometheus-prometheus-pushgateway-75b8bf7c77-7f2js   1/1   Running   0     41s

          prometheus-server-84f77dc9fd-mdxmt                   2/2   Running   0     40s'
        notReady: []
      cleanupBeforeOci:
        namespaces:
        - monitoring-apply
        retainedNamespaces: []
        reason: isolate the OCI/Argo leg from direct-apply workloads in single-cluster
          parity rigs
    configHubOciArgo:
      result: pass
      workloadSpace: helm-expt-parity-prometheus-mqb5sea2-zys-prometheus
      controller: Argo CD OCI
      app: prometheus-parity
      manifestSHA256: a6f31f1a0c86c80a48ec5279e2ad5484e99a312b1bf73e1cb30e6fb00385c665
      objectCount: 24
      namespace: monitoring-oci
      manifestNamespaces:
      - monitoring-oci
      runtimeNamespaces: &id002
      - monitoring-oci
      ociRevision: sha256:db0c4eaf1321cf8502b13af22f69c9c607d68682104b060fbd669f05d6cd4b02
      sync: Synced
      health: Healthy
      separatedSecrets: []
      runtime:
        result: pass
        namespaces: *id002
        workloads: '# monitoring-oci

          deployment.apps/prometheus-kube-state-metrics       1/1   1     1     45s

          deployment.apps/prometheus-prometheus-pushgateway   1/1   1     1     45s

          deployment.apps/prometheus-server                   1/1   1     1     45s

          statefulset.apps/prometheus-alertmanager   1/1   45s

          daemonset.apps/prometheus-prometheus-node-exporter   1     1     1     1     1     kubernetes.io/os=linux   45s'
        pods: '# monitoring-oci

          prometheus-alertmanager-0                            1/1   Running   0     45s

          prometheus-kube-state-metrics-68ff7c5cc5-9r8cq       1/1   Running   0     45s

          prometheus-prometheus-node-exporter-9g7vc            1/1   Running   0     45s

          prometheus-prometheus-pushgateway-75b8bf7c77-fcz8z   1/1   Running   0     45s

          prometheus-server-84f77dc9fd-wrkvl                   2/2   Running   0     45s'
        notReady: []
  semanticComparison:
    allowedExtraConfigHubObjects:
    - v1|Namespace||monitoring
    semanticNormalizations: &id003
    - prune-null-fields
    helmVsConfigHubKubectlApply:
      result: pass
      helmObjectCount: 23
      configHubObjectCount: 24
      missingFromConfigHub: []
      extraInConfigHub:
      - v1|Namespace||monitoring
      semanticDiffs: []
      semanticNormalizations: *id003
      comparisonSHA256: 3f2c1e1bbf8a7e191f39bca794d0ac2ec61b3a1490da34eca38570a32b1d8136
    helmVsConfigHubOciArgo:
      result: pass
      helmObjectCount: 23
      configHubObjectCount: 24
      missingFromConfigHub: []
      extraInConfigHub:
      - v1|Namespace||monitoring
      semanticDiffs: []
      semanticNormalizations:
      - prune-null-fields
      - k8s-zero-defaults
      comparisonSHA256: b99abf78618d34bf4d4a78eccf3240df2db79bb73e44a4913da46ffab823b521
  checks:
  - name: live-lane-lock
    result: pass
    detail: acquired $HOME/.confighub/locks/helm-expt-live-parity.lock
  - name: cub-lk-up
    result: pass
    detail: "Creating kind cluster \"helm-expt-parity-prometheus-mqb5sea2-zys\" (kubeconfig:\
      \ $HOME/.confighub/lk/helm-expt-parity-prometheus-mqb5sea2-zys.kubeconfig)...\n\
      Creating cluster \"helm-expt-parity-prometheus-mqb5sea2-zys\" ...\n \u2022 Ensuring\
      \ node image (kindest/node:v1.35.0) \U0001F5BC  ...\n \u2713 Ensuring node image\
      \ (kindest/node:v1.35.0) \U0001F5BC\n \u2022 Preparing nodes \U0001F4E6   ...\n\
      \ \u2713 Preparing nodes \U0001F4E6 \n \u2022 Writing configuration \U0001F4DC\
      \  ...\n \u2713 Writing configuration \U0001F4DC\n \u2022 Starting control-plane\
      \ \U0001F579\uFE0F  ...\n \u2713 Starting control-plane \U0001F579\uFE0F\n \u2022\
      \ Installing CNI \U0001F50C  ...\n \u2713 Installing CNI \U0001F50C\n \u2022\
      \ Installing StorageClass \U0001F4BE  ...\n \u2713 Installing StorageClass \U0001F4BE\
      \nSet kubectl context to \"kind-helm-expt-parity-prometheus-mqb5sea2-zys\"\n\
      You can now use your cluster with:\n\nkubectl cluster-info --context kind-helm-expt-parity-prometheus-mqb5sea2-zys\
      \ --kubeconfig $HOME/.confighub/lk/helm-expt-parity-prometheus-mqb5sea2-zys.kubeconfig\n\
      \nHave a nice day! \U0001F44B\nInstalling Argo CD...\nCreating namespace \"\
      argocd\"...\napiVersion: v1\nkind: Namespace\nmetadata:\n  n"
  - name: target-facts-regular-helm
    result: pass
    detail: secrets=0 crds=0
  - name: regular-helm-live
    result: pass
    detail: "Release \"prometheus\" does not exist. Installing it now.\nNAME: prometheus\n\
      LAST DEPLOYED: Fri Jun 12 17:48:13 2026\nNAMESPACE: monitoring-helm\nSTATUS:\
      \ deployed\nREVISION: 1\nDESCRIPTION: Install complete\nTEST SUITE: None\nNOTES:\n\
      The Prometheus server can be accessed via port 80 on the following DNS name\
      \ from within your cluster:\nprometheus-server.monitoring-helm.svc.cluster.local\n\
      \n\nGet the Prometheus server URL by running these commands in the same shell:\n\
      \  export POD_NAME=$(kubectl get pods --namespace monitoring-helm -l \"app.kubernetes.io/name=prometheus,app.kubernetes.io/instance=prometheus\"\
      \ -o jsonpath=\"{.items[0].metadata.name}\")\n  kubectl --namespace monitoring-helm\
      \ port-forward $POD_NAME 9090\n\nPrometheus alertmanager can be accessed via\
      \ port 9093 on the following DNS name from within your cluster:\nprometheus-alertmanager.monitoring-helm.svc.cluster.local\n\
      \n\nGet the Alertmanager URL by running these commands in the same shell:\n\
      \  export POD_NAME=$(kubectl get pods --namespace monitoring-"
  - name: target-facts-confighub-apply
    result: pass
    detail: secrets=0 crds=0
  - name: confighub-kubectl-apply-live
    result: pass
    detail: '# monitoring-apply

      deployment.apps/prometheus-kube-state-metrics       1/1   1     1     41s

      deployment.apps/prometheus-prometheus-pushgateway   1/1   1     1     41s

      deployment.apps/prometheus-server                   1/1   1     1     41s

      statefulset.apps/prometheus-alertmanager   1/1   41s

      daemonset.apps/prometheus-prometheus-node-exporter   1     1     1     1     1     kubernetes.io/os=linux   41s'
  - name: target-facts-confighub-oci
    result: pass
    detail: secrets=0 crds=0
  - name: confighub-oci-argo-live
    result: pass
    detail: sync=Synced health=Healthy after 60s
  - name: semantic-object-parity
    result: pass
    detail: apply=pass argo=pass applyDiffs=0 argoDiffs=0
  targetFacts:
    regularHelm:
      result: pass
      stagedSecrets: []
      stagedCRDs: []
    configHubKubectlApply:
      result: pass
      stagedSecrets: []
      stagedCRDs: []
    configHubOciArgo:
      result: pass
      stagedSecrets: []
      stagedCRDs: []
