0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Helmのリリースをデコードして中身を見てみる

Posted at

Helm v3 では、リリース状態がデフォルトだと Secret に保存されます。
その中身を見てみましょう。

Secret をデコードするワンライナー

kubectl get secret sh.helm.release.v1.<RELEASE>.<REVISION> \
  -n <NAMESPACE> -o json \
| jq -r '.data.release' \
| base64 -d \
| base64 -d \
| gunzip \
| jq

helm upgrade --install flux2 flux2/flux2 \
	--version 2.17.0 \
	--namespace flux-system \
	--create-namespace \
	--set policies.create=false

kubectl get secret sh.helm.release.v1.flux2.v1 -n flux-system -o json | jq '.data.release' --raw-output | base64 -d | base64 -d | gunzip | jq
{
  "name": "flux2",
  "info": {
    "first_deployed": "2025-11-05T08:35:25.049189204+09:00",
    "last_deployed": "2025-11-05T08:35:25.049189204+09:00",
    "deleted": "",
    "description": "Install complete",
    "status": "deployed"
  },
  "chart": {
    "metadata": {
      "name": "flux2",
      "sources": [
        "https://github.com/fluxcd-community/helm-charts"
      ],
      "version": "2.17.0",
      "description": "A Helm chart for flux2",
      "apiVersion": "v2",
      "appVersion": "2.7.2",
      "annotations": {
        "artifacthub.io/changes": "- \"[Chore]: Update App Version to upstream 2.7.2\"\n"
      },
      "type": "application"
    },
    "lock": null,
    "templates": [
      {
        "name": "templates/_helper.tpl",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/aggregate-clusterroles.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/cluster-reconciler-clusterrolebinding.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/cluster-reconciler-impersonator-clusterrole.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/cluster-reconciler-impersonator-clusterrolebinding.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/crd-controller-clusterrole.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/crd-controller-clusterrolebinding.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/extra-manifests.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/helm-controller-sa.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/helm-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/helm-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-automation-controller-sa.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-automation-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-automation-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-reflector-controller-sa.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-reflector-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/image-reflector-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/kustomize-controller-sa.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/kustomize-controller-secret.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/kustomize-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/kustomize-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller-ingress.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller-sa.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller-service.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller-webhook-service.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/notification-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/openshift.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/podmonitor.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/policies.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/pre-install-job-serviceaccount.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/pre-install-job.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-controller-service.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-controller-serviceaccount.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-controller.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-controller.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-watcher-service.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-watcher-serviceaccount.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-watcher.crds.yaml",
        "data": "<base64 encoded data>"
      },
      {
        "name": "templates/source-watcher.yaml",
        "data": "<base64 encoded data>"
      }
    ],
    "values": {
      "cli": {
        "affinity": {},
        "annotations": {},
        "image": "ghcr.io/fluxcd/flux-cli",
        "nodeSelector": {},
        "serviceAccount": {
          "automount": true
        },
        "tag": "v2.7.2",
        "tolerations": []
      },
      "clusterDomain": "cluster.local",
      "crds": {
        "annotations": {}
      },
      "distro": {
        "openshift": false
      },
      "extraObjects": [],
      "helmController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/helm-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.4.2",
        "tolerations": []
      },
      "imageAutomationController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/image-automation-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.0.2",
        "tolerations": []
      },
      "imagePullSecrets": [],
      "imageReflectionController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/image-reflector-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.0.2",
        "tolerations": []
      },
      "installCRDs": true,
      "kustomizeController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "envFrom": {
          "map": {
            "name": ""
          },
          "secret": {
            "name": ""
          }
        },
        "extraEnv": [],
        "extraSecretMounts": [],
        "image": "ghcr.io/fluxcd/kustomize-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "secret": {
          "create": false,
          "data": {},
          "name": ""
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.7.1",
        "tolerations": []
      },
      "logLevel": "info",
      "multitenancy": {
        "defaultServiceAccount": "default",
        "enabled": false,
        "privileged": true
      },
      "notificationController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/notification-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "service": {
          "annotations": {},
          "labels": {}
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.7.3",
        "tolerations": [],
        "webhookReceiver": {
          "ingress": {
            "annotations": {},
            "create": false,
            "hosts": [
              {
                "host": "flux-webhook.example.com",
                "paths": [
                  {
                    "path": "/",
                    "pathType": "ImplementationSpecific"
                  }
                ]
              }
            ],
            "labels": {},
            "tls": []
          },
          "service": {
            "annotations": {},
            "labels": {}
          }
        }
      },
      "policies": {
        "create": true
      },
      "prometheus": {
        "podMonitor": {
          "create": false,
          "podMetricsEndpoints": [
            {
              "port": "http-prom",
              "relabelings": [
                {
                  "action": "keep",
                  "regex": "Running",
                  "sourceLabels": [
                    "__meta_kubernetes_pod_phase"
                  ]
                }
              ]
            }
          ]
        }
      },
      "rbac": {
        "annotations": {},
        "create": true,
        "createAggregation": true,
        "roleRef": {
          "name": "cluster-admin"
        }
      },
      "sourceController": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": true,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/source-controller",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "100m",
            "memory": "64Mi"
          }
        },
        "service": {
          "annotations": {},
          "labels": {}
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v1.7.2",
        "tolerations": []
      },
      "sourceWatcher": {
        "affinity": {},
        "annotations": {
          "prometheus.io/port": "8080",
          "prometheus.io/scrape": "true"
        },
        "container": {
          "additionalArgs": []
        },
        "create": false,
        "extraEnv": [],
        "image": "ghcr.io/fluxcd/source-watcher",
        "imagePullPolicy": "",
        "labels": {},
        "nodeSelector": {},
        "priorityClassName": "",
        "resources": {
          "limits": {},
          "requests": {
            "cpu": "50m",
            "memory": "64Mi"
          }
        },
        "service": {
          "annotations": {},
          "labels": {}
        },
        "serviceAccount": {
          "annotations": {},
          "automount": true,
          "create": true
        },
        "tag": "v2.0.2",
        "tolerations": []
      },
      "watchAllNamespaces": true
    },
    "schema": null,
    "files": [
      {
        "name": ".helmignore",
        "data": "<base64 encoded data>"
      },
      {
        "name": "README.md",
        "data": "<base64 encoded data>"
      }
    ]
  },
  "config": {
    "policies": {
      "create": false
    }
  },
  "manifest": "<rendered manifest data>",
  "hooks": [
    {
      "name": "flux2-flux-check",
      "kind": "ServiceAccount",
      "path": "flux2/templates/pre-install-job-serviceaccount.yaml",
      "manifest": "apiVersion: v1\nkind: ServiceAccount\nmetadata:\n  labels:\n    app.kubernetes.io/instance: \"flux-system\"\n    app.kubernetes.io/managed-by: \"Helm\"\n    app.kubernetes.io/version: \"2.7.2\"\n    app.kubernetes.io/part-of: flux\n    helm.sh/chart: flux2-2.17.0\n  name: \"flux2-flux-check\"\n  annotations:\n    \"helm.sh/hook\": pre-install\n    \"helm.sh/hook-weight\": \"-10\"\n    \"helm.sh/hook-delete-policy\": before-hook-creation,hook-succeeded",
      "events": [
        "pre-install"
      ],
      "last_run": {
        "started_at": "2025-11-05T08:35:25.42968393+09:00",
        "completed_at": "2025-11-05T08:35:25.52788216+09:00",
        "phase": "Succeeded"
      },
      "weight": -10,
      "delete_policies": [
        "before-hook-creation",
        "hook-succeeded"
      ]
    },
    {
      "name": "flux2-flux-check",
      "kind": "Job",
      "path": "flux2/templates/pre-install-job.yaml",
      "manifest": "apiVersion: batch/v1\nkind: Job\nmetadata:\n  name: \"flux2-flux-check\"\n  labels:\n    app.kubernetes.io/instance: \"flux-system\"\n    app.kubernetes.io/managed-by: \"Helm\"\n    app.kubernetes.io/version: \"2.7.2\"\n    app.kubernetes.io/part-of: flux\n    helm.sh/chart: flux2-2.17.0\n  annotations:\n    \"helm.sh/hook\": pre-install\n    \"helm.sh/hook-weight\": \"-5\"\n    \"helm.sh/hook-delete-policy\": before-hook-creation,hook-succeeded\nspec:\n  backoffLimit: 1\n  template:\n    metadata:\n      name: \"flux2\"\n      labels:\n        app.kubernetes.io/instance: \"flux-system\"\n        app.kubernetes.io/managed-by: \"Helm\"\n        app.kubernetes.io/version: \"2.7.2\"\n        app.kubernetes.io/part-of: flux\n        helm.sh/chart: \"flux2-2.17.0\"\n    spec:\n      restartPolicy: Never\n      serviceAccountName: \"flux2-flux-check\"\n      automountServiceAccountToken: true\n      containers:\n      - name: flux-cli\n        image: ghcr.io/fluxcd/flux-cli:v2.7.2\n        command: [\"/usr/local/bin/flux\", \"check\",  \"--pre\", \"--namespace\", flux-system]\n        securityContext:\n          allowPrivilegeEscalation: false\n          capabilities:\n            drop:\n            - ALL\n          readOnlyRootFilesystem: true\n          runAsNonRoot: true\n          seccompProfile:\n            type: RuntimeDefault",
      "events": [
        "pre-install"
      ],
      "last_run": {
        "started_at": "2025-11-05T08:35:25.547544559+09:00",
        "completed_at": "2025-11-05T08:35:34.746939845+09:00",
        "phase": "Succeeded"
      },
      "weight": -5,
      "delete_policies": [
        "before-hook-creation",
        "hook-succeeded"
      ]
    }
  ],
  "version": 1,
  "namespace": "flux-system"
}

主なフィールド

  • .name / .namespace / .version:リリース名、Namespace、リビジョン
  • .infofirst_deployed / last_deployed / status などの状態
  • .chart.metadata:Chart 名・バージョン・ソース
  • .chart.valuesChart の values.yaml(デフォルト値)
  • .configインストール/アップグレード時に指定したユーザー値-f--set
  • .hooks[]:インストール/アップグレード時に走った Hook の詳細
  • .manifestレンダリング済みマニフェスト(Kubernetes に適用される YAML)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?