)]}'
{
  "commit": "3aee62ac0b0a8c9626abbd386e9728c859cd21be",
  "tree": "316a15e1e6ed03894a915345edd079df09744c34",
  "parents": [
    "32f1811529456f852dc8942bb5fb28fbc8b9ac9c"
  ],
  "author": {
    "name": "吴晟 Wu Sheng",
    "email": "wu.sheng@foxmail.com",
    "time": "Wed Jun 10 10:02:06 2026 +0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jun 10 10:02:06 2026 +0800"
  },
  "message": "Run OAP init job in the main phase to fix `helm --wait` deadlock (#190)\n\nThe OAP init job was a `post-install,post-upgrade,post-rollback` hook. Under\n`helm upgrade --install --wait`, Helm waits for all release resources to become\nReady before running post-* hooks, but the OAP Deployment runs in `-Dmode\u003dno-init`\nand never becomes Ready until the init job creates the storage schema. The hook\ntherefore never runs and the install deadlocks until it times out (hits new\nusers on a fresh install/storage).\n\nHooks cannot fix this with embedded storage subcharts: a pre-* hook init job\ncannot reach main-phase storage, and a post-* hook deadlocks under `--wait`.\nSo the init job now runs as a normal main-phase resource alongside storage and\nthe OAP Deployment, which blocks in no-init mode until the schema appears.\n\nTo avoid `spec.template is immutable` failures on upgrade (a Job\u0027s pod template\ncannot be patched), the Job name carries an 8-char hash of the chart values, so\na changed spec yields a new Job and Helm prunes the previous one. A new optional\n`oapInit.ttlSecondsAfterFinished` can auto-clean finished Jobs (off by default;\nleft off for GitOps tools that would otherwise recreate the Job).\n\nThe OAP Deployment startupProbe default failureThreshold is raised 9 -\u003e 30\n(90s -\u003e 300s) so the pod waits for the init job during a cold start instead of\nbeing restarted.\n\nDocs (values.yaml, chart README, root README) updated accordingly.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "011c576184ce4f2aa0627f901416931e11b86abe",
      "old_mode": 33188,
      "old_path": "README.md",
      "new_id": "6698a2997ea940db7a1607fb6819a53e7acb3a0e",
      "new_mode": 33188,
      "new_path": "README.md"
    },
    {
      "type": "modify",
      "old_id": "21c838ba742a08cc89bc5bd74b51bb3b391826f6",
      "old_mode": 33188,
      "old_path": "chart/skywalking/README.md",
      "new_id": "89be301eb610815b28c2ab7ff2ac3b6580854b47",
      "new_mode": 33188,
      "new_path": "chart/skywalking/README.md"
    },
    {
      "type": "modify",
      "old_id": "d88c6ef2d63d355053baff32f07f65cd7535aea7",
      "old_mode": 33188,
      "old_path": "chart/skywalking/templates/oap-deployment.yaml",
      "new_id": "8ab826d3a286c84964fd377c8ddaf85de3dc9c50",
      "new_mode": 33188,
      "new_path": "chart/skywalking/templates/oap-deployment.yaml"
    },
    {
      "type": "modify",
      "old_id": "2bf187419f939fa4cff2d3f5950fb419b4a96e8c",
      "old_mode": 33188,
      "old_path": "chart/skywalking/templates/oap-init.job.yaml",
      "new_id": "8b4f05d044b1e5e07d530f9ce1d68d8035335750",
      "new_mode": 33188,
      "new_path": "chart/skywalking/templates/oap-init.job.yaml"
    },
    {
      "type": "modify",
      "old_id": "e83947d5df9770796ef285d239d448f784f52da2",
      "old_mode": 33188,
      "old_path": "chart/skywalking/values.yaml",
      "new_id": "5681cc2e669ed6872e30698f29c985a01b111e53",
      "new_mode": 33188,
      "new_path": "chart/skywalking/values.yaml"
    }
  ]
}
