apiVersion: "helm-expt.confighub.com/v1alpha1"
kind: "InheritanceGraph"
metadata:
  name: "bitnami-redis-25.5.3"
spec:
  chart: "bitnami/redis"
  version: "25.5.3"
  recipe: "recipe.yaml"
  baseVariant: "default"
  variants:
    -
      name: "default"
      variant: "variants/default/variant.yaml"
      valuesProfile: "effective-values.yaml"
    -
      name: "reuse-existing-secret"
      variant: "variants/reuse-existing-secret/variant.yaml"
      valuesProfile: "effective-values-reuse-existing-secret.yaml"
  edges:
    -
      from: "default"
      to: "default"
      type: "base-self"
      inheritedValuePaths:
        - "auth.password"
        - "image.digest"
      overriddenValuePaths:
        []
      addedValuePaths:
        []
      removedValuePaths:
        []
      valueSourceMapCoverage:
        []
    -
      from: "default"
      to: "reuse-existing-secret"
      type: "inherits-with-overrides"
      inheritedValuePaths:
        - "image.digest"
      overriddenValuePaths:
        []
      addedValuePaths:
        - "auth.existingSecret"
        - "auth.existingSecretPasswordKey"
      removedValuePaths:
        - "auth.password"
      valueSourceMapCoverage:
        - "auth.password"
  targetFactEdges:
    -
      variant: "reuse-existing-secret"
      kind: "Secret"
      namespace: "redis"
      name: "redis-existing-secret"
      keys:
        - "redis-password"
      fact: "Secret/redis/redis-existing-secret:redis-password"
      purpose: "Redis authentication password"
  generatedFactEdges:
    -
      variant: "default"
      valuePath: "auth.password"
      source: "generated-fact-receipt"
      effectiveValueDigest: "sha256:6486a1dce90d013579f3b52d6939524b23b3ca00c5702e409348e6c0ba782349"
      renderedFields:
        - "v1|Secret|redis|redis:data.redis-password"
        - "apps/v1|StatefulSet|redis|redis-master:spec.template.spec.volumes[redis-password].secret.secretName"
        - "apps/v1|StatefulSet|redis|redis-replicas:spec.template.spec.volumes[redis-password].secret.secretName"
      relatedFacts:
        - "revisions/default/r001/receipts/generated-fact-receipt.yaml"
  fieldReachability:
    -
      valuePath: "replica.replicaCount"
      source: "chart-default"
      renderedFieldCount: 1
      renderedFields:
        - "apps/v1|StatefulSet|redis|redis-replicas:spec.replicas"
      immutableFieldRisk: false
      rolloutImpact: "changes-replica-statefulset-scale"
    -
      valuePath: "releaseName"
      source: "variant.releaseName"
      renderedFieldCount: 14
      renderedFields:
        - "apps/v1|StatefulSet|redis|redis-master:metadata.labels.app.kubernetes.io/instance"
        - "apps/v1|StatefulSet|redis|redis-replicas:metadata.labels.app.kubernetes.io/instance"
        - "networking.k8s.io/v1|NetworkPolicy|redis|redis:metadata.labels.app.kubernetes.io/instance"
        - "policy/v1|PodDisruptionBudget|redis|redis-master:metadata.labels.app.kubernetes.io/instance"
        - "policy/v1|PodDisruptionBudget|redis|redis-replicas:metadata.labels.app.kubernetes.io/instance"
        - "v1|ConfigMap|redis|redis-configuration:metadata.labels.app.kubernetes.io/instance"
        - "v1|ConfigMap|redis|redis-health:metadata.labels.app.kubernetes.io/instance"
        - "v1|ConfigMap|redis|redis-scripts:metadata.labels.app.kubernetes.io/instance"
        - "v1|Secret|redis|redis:metadata.labels.app.kubernetes.io/instance"
        - "v1|ServiceAccount|redis|redis-master:metadata.labels.app.kubernetes.io/instance"
        - "v1|ServiceAccount|redis|redis-replica:metadata.labels.app.kubernetes.io/instance"
        - "v1|Service|redis|redis-headless:metadata.labels.app.kubernetes.io/instance"
        - "v1|Service|redis|redis-master:metadata.labels.app.kubernetes.io/instance"
        - "v1|Service|redis|redis-replicas:metadata.labels.app.kubernetes.io/instance"
      immutableFieldRisk: true
      rolloutImpact: "changing-release-name-renames-objects"
    -
      valuePath: "namespace"
      source: "variant.namespace"
      renderedFieldCount: 14
      renderedFields:
        - "apps/v1|StatefulSet|redis|redis-master:metadata.namespace"
        - "apps/v1|StatefulSet|redis|redis-replicas:metadata.namespace"
        - "networking.k8s.io/v1|NetworkPolicy|redis|redis:metadata.namespace"
        - "policy/v1|PodDisruptionBudget|redis|redis-master:metadata.namespace"
        - "policy/v1|PodDisruptionBudget|redis|redis-replicas:metadata.namespace"
        - "v1|ConfigMap|redis|redis-configuration:metadata.namespace"
        - "v1|ConfigMap|redis|redis-health:metadata.namespace"
        - "v1|ConfigMap|redis|redis-scripts:metadata.namespace"
        - "v1|Secret|redis|redis:metadata.namespace"
        - "v1|ServiceAccount|redis|redis-master:metadata.namespace"
        - "v1|ServiceAccount|redis|redis-replica:metadata.namespace"
        - "v1|Service|redis|redis-headless:metadata.namespace"
        - "v1|Service|redis|redis-master:metadata.namespace"
        - "v1|Service|redis|redis-replicas:metadata.namespace"
      immutableFieldRisk: true
      rolloutImpact: "moving-namespace-creates-distinct-object-set"
    -
      valuePath: "image.digest"
      source: "catalog-policy"
      renderedFieldCount: 2
      renderedFields:
        - "apps/v1|StatefulSet|redis|redis-master:spec.template.spec.containers[0].image"
        - "apps/v1|StatefulSet|redis|redis-replicas:spec.template.spec.containers[0].image"
      immutableFieldRisk: false
      rolloutImpact: "changing-image-rolls-redis-pods"
    -
      valuePath: "auth.password"
      source: "generated-fact-receipt"
      renderedFieldCount: 3
      renderedFields:
        - "v1|Secret|redis|redis:data.redis-password"
        - "apps/v1|StatefulSet|redis|redis-master:spec.template.spec.volumes[redis-password].secret.secretName"
        - "apps/v1|StatefulSet|redis|redis-replicas:spec.template.spec.volumes[redis-password].secret.secretName"
      immutableFieldRisk: false
      rolloutImpact: "changes-secret-checksum-and-rolls-redis-pods"
  notes:
    - "This graph is recovered from checked-in recipe artifacts."
    - "It is a desired-state graph fragment, not a live-cluster observation."
    - "Field reachability is limited to charts that have value-source-map.yaml coverage."
