apiVersion: helm-expt.confighub.com/v1alpha1
kind: LiveHelmConfigHubParityReceipt
metadata:
  name: prometheus-community-alertmanager-1.37.0-ha-live-parity-20260605
spec:
  chart: prometheus-community/alertmanager
  version: 1.37.0
  base: ha
  result: pass
  observedAt: '2026-06-13T05:14:11Z'
  package:
    path: packages/prometheus-community/alertmanager/1.37.0
  recipe:
    path: recipes/prometheus-community/alertmanager/1.37.0
  variantRevision: recipes/prometheus-community/alertmanager/1.37.0/revisions/ha/r001/variant-revision.yaml
  targetProfile:
    name: none
    result: pass
    resources: []
  gitOpsCanonicalizationProfile:
    name: k8s-zero-defaults
    result: pass
    changes:
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: removed spec.minReadySeconds=0'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.persistentVolumeClaimRetentionPolicy=Retain/Retain'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.podManagementPolicy=OrderedReady'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.updateStrategy RollingUpdate defaults'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.restartPolicy=Always'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.dnsPolicy=ClusterFirst'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.schedulerName=default-scheduler'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.terminationGracePeriodSeconds=30'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: spec.template.spec.serviceAccount=serviceAccountName'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].terminationMessagePath default'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].terminationMessagePolicy default'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].livenessProbe.failureThreshold=3'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].livenessProbe.periodSeconds=10'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].livenessProbe.successThreshold=1'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].livenessProbe.timeoutSeconds=1'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].livenessProbe.httpGet.scheme=HTTP'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].readinessProbe.failureThreshold=3'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].readinessProbe.periodSeconds=10'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].readinessProbe.successThreshold=1'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].readinessProbe.timeoutSeconds=1'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.containers[alertmanager].readinessProbe.httpGet.scheme=HTTP'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.template.spec.volumes[config].configMap.defaultMode=420'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.volumeClaimTemplates[storage].apiVersion=v1'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.volumeClaimTemplates[storage].kind=PersistentVolumeClaim'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/alertmanager: materialized
      spec.volumeClaimTemplates[storage].status.phase=Pending'
    - 'statefulset-default-alertmanager.yaml: StatefulSet/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-alertmanager-ha/gitops-canonicalization-k8s-zero-defaults.yaml
  run:
    rig: helm-expt-parity-alertmanager-ha-zd-0613
    kubeContext: kind-helm-expt-parity-alertmanager-ha-zd-0613
    namespace: default
    legNamespaces:
      regularHelm: default-helm
      configHubKubectlApply: default-apply
      configHubOciArgo: default-oci
    clusterLifecycle: cleaned-up
    cleanup:
      command: cub lk down --name helm-expt-parity-alertmanager-ha-zd-0613 --force
      result: pass
      detail: 'Deleting kind cluster "helm-expt-parity-alertmanager-ha-zd-0613"...

        Deleting cluster "helm-expt-parity-alertmanager-ha-zd-0613" ...

        Deleted nodes: ["helm-expt-parity-alertmanager-ha-zd-0613-control-plane"]

        Deleting Space "helm-expt-parity-alertmanager-ha-zd-0613-cluster" (recursive:
        cascades to Unit, Target, Worker)...


        Done.'
  legs:
    regularHelm:
      result: pass
      command: helm upgrade --install alertmanager alertmanager --repo https://prometheus-community.github.io/helm-charts
        --version 1.37.0 --namespace default-helm --create-namespace --values $HOME/code/helm-expt/runs/live-helm-confighub-compare/prometheus-community-alertmanager-ha/regular-helm-values.yaml
        --wait --timeout 10m
      manifestSHA256: a016dbf7647ff32935788288023d6dbd78b924f6cca645ef2081fe1d8856f8b4
      objectCount: 5
      liveHelmManifestSHA256: 1b1bb1b450f97751287e6aec1e34bbd72a044a046813d99eb904885e3b10aed4
      liveHelmManifestObjectCount: 5
      namespace: default-helm
      runtime:
        result: pass
        workloads: statefulset.apps/alertmanager   3/3   23s
        pods: 'alertmanager-0   1/1   Running   0     23s

          alertmanager-1   1/1   Running   0     10s

          alertmanager-2   1/1   Running   0     5s'
        notReady: []
        ignoredJobPods: []
      stderr: ''
      getManifestError: ''
    configHubKubectlApply:
      result: pass
      renderCommand: cub installer setup --pull $HOME/code/helm-expt/packages/prometheus-community/alertmanager/1.37.0
        --base ha --work-dir /tmp/helm-expt-live-parity-helm-expt-parity-alertmanager-ha-zd-0613-prometheus-community-alertmanager
        --non-interactive --namespace default-apply
      applyMode: namespace-first kubectl apply; separated secrets staged when present
      manifestSHA256: b18544274cfb13195d6d8a9023873354dd73d12e562eb7c138353de60ec2ccae
      objectCount: 6
      namespace: default-apply
      manifestNamespaces:
      - default
      - default-apply
      runtimeNamespaces: &id001
      - default
      runtime:
        result: pass
        namespaces: *id001
        workloads: '# default

          statefulset.apps/alertmanager   3/3   21s'
        pods: '# default

          alertmanager-0   1/1   Running   0     21s

          alertmanager-1   1/1   Running   0     16s

          alertmanager-2   1/1   Running   0     11s'
        notReady: []
      cleanupBeforeOci:
        namespaces:
        - default-apply
        retainedNamespaces: []
        clusterScopedResources:
          result: not-needed
          objectCount: 0
        protectedNamespaceResources:
          result: not-needed
          namespaces:
          - default
          objectCount: 0
          preservedPreExistingObjects:
          - apps/v1|StatefulSet|default|alertmanager
          - v1|ConfigMap|default|alertmanager
          - v1|ServiceAccount|default|alertmanager
          - v1|Service|default|alertmanager
          - v1|Service|default|alertmanager-headless
        reason: isolate the OCI/Argo leg from direct-apply workloads in single-cluster
          parity rigs
    configHubOciArgo:
      result: pass
      workloadSpace: helm-expt-parity-alertmanager-ha-zd-0613-prometheus-community-alertmanager
      controller: Argo CD OCI
      app: prometheus-community-alertmanager-parity
      manifestSHA256: d3a50096ce638ec17e5926fe7a0908bd4191e9db1639114877b1b40ce3127083
      objectCount: 6
      namespace: default-oci
      manifestNamespaces:
      - default
      - default-oci
      runtimeNamespaces: &id002
      - default
      ociRevision: sha256:f2b2187d2d322c6a4927e2844bd2e8a2778848c1b5856b2c13e5bb73a54f4fde
      sync: Synced
      health: Healthy
      separatedSecrets: []
      argoStatus:
        result: recorded
        sync:
          comparedTo:
            destination:
              namespace: default-oci
              server: https://kubernetes.default.svc
            source:
              path: ./helm-expt-parity-alertmanager-ha-zd-0613-prometheus-community-alertmanager
              repoURL: oci://oci.hub.confighub.com:443/target/helm-expt-parity-alertmanager-ha-zd-0613-cluster/oci
              targetRevision: latest
          revision: sha256:f2b2187d2d322c6a4927e2844bd2e8a2778848c1b5856b2c13e5bb73a54f4fde
          status: Synced
        health:
          lastTransitionTime: '2026-06-13T05:21:56Z'
          status: Healthy
        operationState:
          phase: Succeeded
          message: successfully synced (all tasks run)
        conditions: []
        resources:
        - group: ''
          kind: ConfigMap
          namespace: default
          name: alertmanager
          status: Synced
          health: ''
          hook: false
        - group: ''
          kind: Namespace
          namespace: ''
          name: default-oci
          status: Synced
          health: ''
          hook: false
        - group: ''
          kind: Service
          namespace: default
          name: alertmanager
          status: Synced
          health: ''
          hook: false
        - group: ''
          kind: Service
          namespace: default
          name: alertmanager-headless
          status: Synced
          health: ''
          hook: false
        - group: ''
          kind: ServiceAccount
          namespace: default
          name: alertmanager
          status: Synced
          health: ''
          hook: false
        - group: apps
          kind: StatefulSet
          namespace: default
          name: alertmanager
          status: Synced
          health: ''
          hook: false
      rootArgoStatus:
        result: recorded
        sync:
          comparedTo:
            destination:
              namespace: argocd
              server: https://kubernetes.default.svc
            source:
              path: ./helm-expt-parity-alertmanager-ha-zd-0613-cluster
              repoURL: oci://oci.hub.confighub.com:443/target/helm-expt-parity-alertmanager-ha-zd-0613-cluster/oci
              targetRevision: latest
          revision: sha256:f2b2187d2d322c6a4927e2844bd2e8a2778848c1b5856b2c13e5bb73a54f4fde
          status: Synced
        health:
          lastTransitionTime: '2026-06-13T05:15:13Z'
          status: Healthy
        operationState:
          phase: Succeeded
          message: successfully synced (all tasks run)
        conditions: []
        resources:
        - group: argoproj.io
          kind: Application
          namespace: argocd
          name: helm-expt-parity-alertmanager-ha-zd-0613-cluster
          status: Synced
          health: ''
          hook: false
        - group: argoproj.io
          kind: Application
          namespace: argocd
          name: prometheus-community-alertmanager-parity
          status: Synced
          health: ''
          hook: false
      runtime:
        result: pass
        namespaces: *id002
        workloads: '# default

          statefulset.apps/alertmanager   3/3   6m19s'
        pods: '# default

          alertmanager-0   1/1   Running   0     6m19s

          alertmanager-1   1/1   Running   0     6m14s

          alertmanager-2   1/1   Running   0     6m9s'
        notReady: []
  semanticComparison:
    allowedExtraConfigHubObjects:
    - v1|Namespace||default
    semanticNormalizations: []
    helmVsConfigHubKubectlApply:
      result: pass
      helmObjectCount: 5
      configHubObjectCount: 6
      missingFromConfigHub: []
      extraInConfigHub:
      - v1|Namespace||default
      semanticDiffs: []
      semanticNormalizations: []
      comparisonSHA256: 7ed51edded6eabf9dc814acd874d678f1fb7683e09d0b660dbf25048807aaef9
    helmVsConfigHubOciArgo:
      result: pass
      helmObjectCount: 5
      configHubObjectCount: 6
      missingFromConfigHub: []
      extraInConfigHub:
      - v1|Namespace||default
      semanticDiffs: []
      semanticNormalizations:
      - k8s-zero-defaults
      comparisonSHA256: 93fc1e801dcdda3e219e58964a00d062e6ddf66994927d11b684e80875336f75
  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-alertmanager-ha-zd-0613\" (kubeconfig:\
      \ $HOME/.confighub/lk/helm-expt-parity-alertmanager-ha-zd-0613.kubeconfig)...\n\
      Creating cluster \"helm-expt-parity-alertmanager-ha-zd-0613\" ...\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-alertmanager-ha-zd-0613\"\n\
      You can now use your cluster with:\n\nkubectl cluster-info --context kind-helm-expt-parity-alertmanager-ha-zd-0613\
      \ --kubeconfig $HOME/.confighub/lk/helm-expt-parity-alertmanager-ha-zd-0613.kubeconfig\n\
      \nNot sure what to do next? \U0001F605  Check out https://kind.sigs.k8s.io/docs/user/quick-start/\n\
      Installing Argo CD...\nCreatin"
  - name: target-facts-regular-helm
    result: pass
    detail: secrets=0 crds=0
  - name: regular-helm-live
    result: pass
    detail: "Release \"alertmanager\" does not exist. Installing it now.\nNAME: alertmanager\n\
      LAST DEPLOYED: Sat Jun 13 06:15:12 2026\nNAMESPACE: default-helm\nSTATUS: deployed\n\
      REVISION: 1\nDESCRIPTION: Install complete\nTEST SUITE: None\nNOTES:\n1. Get\
      \ the application URL by running these commands:\n  export POD_NAME=$(kubectl\
      \ get pods --namespace default-helm -l \"app.kubernetes.io/name=alertmanager,app.kubernetes.io/instance=alertmanager\"\
      \ -o jsonpath=\"{.items[0].metadata.name}\")\n  echo \"Visit http://127.0.0.1:9093\
      \ to use your application\"\n  kubectl --namespace default-helm port-forward\
      \ $POD_NAME 9093:80"
  - name: target-facts-confighub-apply
    result: pass
    detail: secrets=0 crds=0
  - name: confighub-kubectl-apply-live
    result: pass
    detail: '# default

      statefulset.apps/alertmanager   3/3   21s'
  - 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 20s
  - 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: []
  operatingPolicy:
    regularHelm:
      result: pass
      operation: none
    configHubKubectlApply:
      result: pass
      operation: none
      namespace: default-apply
    configHubOciArgo:
      result: pass
      operation: none
      namespace: default-oci
