apiVersion: "helm-expt.confighub.com/v1alpha1"
kind: "ConfigHubProofReceipt"
metadata:
  name: "ingress-nginx-confighub-proof-20260527"
spec:
  run:
    date: "2026-05-27"
    context:
      organization: "Kubara"
      server: "https://hub.confighub.com"
      cubClientVersion: "Version:    dev"
      cubServerVersion: "v0.1.79"
  package:
    path: "packages/ingress-nginx/ingress-nginx/4.15.1"
    name: "ingress-nginx-ingress-nginx"
    chart: "ingress-nginx/ingress-nginx"
    chartVersion: "4.15.1"
    bases:
      - "default"
      - "admission-disabled"
      - "internal-clusterip"
    selectedBase: "internal-clusterip"
    docVerified: true
    targetFactRequirements:
      -
        base: "default"
        requirements:
          -
            kind: "ClusterFeature"
            name: "Secret ingress-nginx/ingress-nginx-admission keys cert,key,ca"
            namespace: "ingress-nginx"
            suggestedSource: "kubectl -n ingress-nginx create secret generic ingress-nginx-admission --from-literal=cert=<value> --from-literal=key=<value> --from-literal=ca=<value>"
  render:
    command: "cub installer setup --pull packages/ingress-nginx/ingress-nginx/4.15.1 --base internal-clusterip --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip --non-interactive --namespace ingress-nginx"
    result: "pass"
    manifestCount: 10
    separatedSecretCount: 0
    facts:
      targetFactChecks:
        base: "internal-clusterip"
        mode: "not-required"
        result: "pass"
      targetFacts:
        requiredCRDs:
          []
        requiredObjectStores:
          []
        requiredSecrets:
          []
        requiredTopology: null
        requiredValues:
          []
  rerender:
    command: "cub installer render --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip"
    result: "pass"
    manifestCount: 10
    separatedSecretCount: 0
  deterministicPackage:
    command: "cub installer package packages/ingress-nginx/ingress-nginx/4.15.1 -o .tmp/confighub-proof/ingress-nginx-archives/ingress-nginx-a.tgz"
    sha256: "902a90386d015462105294ef5e7634db05017735f64ba2a435c3b8853a911bf5"
    byteIdenticalAcrossTwoLocalBundles: true
  vet:
    command: "cub installer vet --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip"
    result: "pass"
    note: "Package declares no validators (spec.validators is empty)."
  upload:
    command: "cub installer upload --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip --space helm-ingress-nginx-confighub-proof --component IngressNGINX --layer App --environment Demo --owner ConfigHubHelm --variant internal-clusterip --unit-label Component=IngressNGINX --unit-label HelmChart=ingress-nginx-ingress-nginx --unit-label HelmChartVersion=4.15.1 --unit-label Variant=internal-clusterip --unit-label Proof=ingress-nginx-confighub-proof --retry"
    result: "pass"
    workaround: "CUB_CONFIG=$HOME/.confighub/config.yaml"
    space: "helm-ingress-nginx-confighub-proof"
    unitCount: 11
    kubernetesUnitCount: 10
    installerRecordUnitCount: 1
    separatedSecretsNotUploaded:
      []
  plan:
    preUpload:
      command: "cub installer plan --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip"
      result: "expected-missing-upload-state"
    command: "cub installer plan --work-dir .tmp/confighub-proof/ingress-nginx-internal-clusterip"
    result: "pass"
    summary: "No changes.\nImages in helm-ingress-nginx-confighub-proof (post-render):\n      Deployment/ingress-nginx-controller [controller] registry.k8s.io/ingress-nginx/controller:v1.15.1@sha256:594ceea76b01c592858f803f9ff4d2cb40542cae2060410b2c95f75907d659e1"
  serverSideVariant:
    command: "cub variant create staging helm-ingress-nginx-confighub-proof --environment Staging --region local --namespace ingress-nginx --space-pattern template:{{.Labels.Component}}-{{.Labels.Variant}} --allow-exists --wait --timeout 10m"
    result: "pass"
    upstreamSpace: "helm-ingress-nginx-confighub-proof"
    downstreamSpace: "IngressNGINX-staging"
    clonedUnitCount: 11
    namespace: "ingress-nginx"
  serverSidePromotion:
    receipt: "variant-promotion-receipt.yaml"
    result: "watch"
    reason: "server-side promotion mechanics passed, but changeset-bound promote failed and required the no-changeset fallback"
    changedUnitCaughtUp: "pass"
    addedUnitCloned: "pass"
    deletionHandling: "not-tested"
  review:
    unitList: "pass"
    unitData: "pass"
    revisionList: "pass"
    revisionDiff: "pass"
    representativeUnit: "deployment-ingress-nginx-ingress-nginx-controller"
  retention:
    liveSpacesDeletedAfterProof: true
    reason: "Kubara demo org has a finite Link quota; receipts and command logs preserve the proof after the live spaces are removed."
    spaces:
      - "helm-ingress-nginx-confighub-proof"
      - "IngressNGINX-staging"
  observedFriction:
    - "cub installer upload needs explicit CUB_CONFIG in this local setup ($HOME/.confighub/config.yaml)."
    - "pre-upload cub installer plan is expected to fail until upload state exists."
    - "dry-run apply is blocked until a target is attached, which is the correct safe boundary."
