Skip to content

document the recommended 'inside secret' method for supportbundle res…#4004

Merged
paigecalvert merged 3 commits into
mainfrom
laverya/sc-136963/troubleshoot-crds-don-t-exist-on-helm-cli
May 6, 2026
Merged

document the recommended 'inside secret' method for supportbundle res…#4004
paigecalvert merged 3 commits into
mainfrom
laverya/sc-136963/troubleshoot-crds-don-t-exist-on-helm-cli

Conversation

@laverya laverya requested a review from a team as a code owner April 29, 2026 12:10
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 29, 2026

Deploy Preview for replicated-docs ready!

Name Link
🔨 Latest commit a51955e
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs/deploys/69fbbc14db94400008e86216
😎 Deploy Preview https://deploy-preview-4004--replicated-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 29, 2026

Deploy Preview for replicated-docs-upgrade ready!

Name Link
🔨 Latest commit a51955e
🔍 Latest deploy log https://app.netlify.com/projects/replicated-docs-upgrade/deploys/69fbbc14edb2770008ee1c89
😎 Deploy Preview https://deploy-preview-4004--replicated-docs-upgrade.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@replicated-ci replicated-ci added type::docs Improvements or additions to documentation type::feature labels Apr 29, 2026
Comment thread docs/reference/linter.mdx
</tr>
</table>

### troubleshoot-spec-in-chart-without-crd
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.Headings] 'troubleshoot-spec-in-chart-without-crd' should use sentence case.

Comment thread docs/reference/linter.mdx Outdated
<tr>
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource without also including the corresponding CRD (<code>preflights.troubleshoot.sh</code> or <code>supportbundles.troubleshoot.sh</code>) in the chart's <code>crds/</code> directory or templates.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Acronyms] Spell out 'CRD' on first use, if it's unfamiliar to the audience.

Comment thread docs/reference/linter.mdx Outdated
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource without also including the corresponding CRD (<code>preflights.troubleshoot.sh</code> or <code>supportbundles.troubleshoot.sh</code>) in the chart's <code>crds/</code> directory or templates.</p>
<p>Bare Preflight or SupportBundle custom resources inside a Helm chart require the matching CRD to be installed in the cluster before the chart is applied. In most shared clusters, that CRD is not present and installing it requires cluster-admin permissions. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Acronyms] Spell out 'CRD' on first use, if it's unfamiliar to the audience.

Comment thread docs/reference/linter.mdx Outdated
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource without also including the corresponding CRD (<code>preflights.troubleshoot.sh</code> or <code>supportbundles.troubleshoot.sh</code>) in the chart's <code>crds/</code> directory or templates.</p>
<p>Bare Preflight or SupportBundle custom resources inside a Helm chart require the matching CRD to be installed in the cluster before the chart is applied. In most shared clusters, that CRD is not present and installing it requires cluster-admin permissions. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be installed').

Comment thread docs/reference/linter.mdx Outdated
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource without also including the corresponding CRD (<code>preflights.troubleshoot.sh</code> or <code>supportbundles.troubleshoot.sh</code>) in the chart's <code>crds/</code> directory or templates.</p>
<p>Bare Preflight or SupportBundle custom resources inside a Helm chart require the matching CRD to be installed in the cluster before the chart is applied. In most shared clusters, that CRD is not present and installing it requires cluster-admin permissions. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('is applied').

* Helm applications installed with KOTS v1.94.2 and later

:::note
Support bundle specs must be defined in a Kubernetes Secret (or ConfigMap) when included inside a Helm chart's `templates` directory. A bare `kind: SupportBundle` custom resource in a chart requires the `supportbundles.troubleshoot.sh` CRD to be installed in the cluster, which is not available in most shared clusters and requires cluster-admin permissions. The Secret-based approach works in any cluster without additional setup. For more information, see [Discover Cluster Specs](https://troubleshoot.sh/docs/support-bundle/discover-cluster-specs/) in the Troubleshoot documentation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Acronyms] Spell out 'CRD' on first use, if it's unfamiliar to the audience.

* Helm applications installed with KOTS v1.94.2 and later

:::note
Support bundle specs must be defined in a Kubernetes Secret (or ConfigMap) when included inside a Helm chart's `templates` directory. A bare `kind: SupportBundle` custom resource in a chart requires the `supportbundles.troubleshoot.sh` CRD to be installed in the cluster, which is not available in most shared clusters and requires cluster-admin permissions. The Secret-based approach works in any cluster without additional setup. For more information, see [Discover Cluster Specs](https://troubleshoot.sh/docs/support-bundle/discover-cluster-specs/) in the Troubleshoot documentation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be installed').


In a release for your application, add the following YAML to a new `support-bundle.yaml` manifest file:
:::note
A bare `kind: SupportBundle` custom resource is only appropriate at the root of a release. If you place this manifest inside a Helm chart's `templates` directory, the `supportbundles.troubleshoot.sh` CRD must be installed in the cluster before the chart is deployed. For Helm charts, use the Secret-based approach in [Kubernetes secret](#secret) instead.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Acronyms] Spell out 'CRD' on first use, if it's unfamiliar to the audience.


In a release for your application, add the following YAML to a new `support-bundle.yaml` manifest file:
:::note
A bare `kind: SupportBundle` custom resource is only appropriate at the root of a release. If you place this manifest inside a Helm chart's `templates` directory, the `supportbundles.troubleshoot.sh` CRD must be installed in the cluster before the chart is deployed. For Helm charts, use the Secret-based approach in [Kubernetes secret](#secret) instead.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be installed').


In a release for your application, add the following YAML to a new `support-bundle.yaml` manifest file:
:::note
A bare `kind: SupportBundle` custom resource is only appropriate at the root of a release. If you place this manifest inside a Helm chart's `templates` directory, the `supportbundles.troubleshoot.sh` CRD must be installed in the cluster before the chart is deployed. For Helm charts, use the Secret-based approach in [Kubernetes secret](#secret) instead.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('is deployed').

Copy link
Copy Markdown
Member

@banjoh banjoh left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest we avoid mentioning troubleshoot CRDs (even if technically they can be installed to have installs succeed) so as not to direct/encourage users to attempting to install them as a solution.

Comment thread docs/reference/linter.mdx
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource.</p>
<p>Preflight and SupportBundle custom resources cannot be applied directly from a Helm chart — they require cluster-side CRDs that are not available in most shared clusters and that need cluster-admin permissions to install. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.SentenceLength] Try to keep your sentence length to 26 words or fewer.

Comment thread docs/reference/linter.mdx
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource.</p>
<p>Preflight and SupportBundle custom resources cannot be applied directly from a Helm chart — they require cluster-side CRDs that are not available in most shared clusters and that need cluster-admin permissions to install. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be applied').

Comment thread docs/reference/linter.mdx
<th>Description</th>
<td>
<p>Notifies if a Helm chart contains a top-level <code>kind: Preflight</code> or <code>kind: SupportBundle</code> custom resource.</p>
<p>Preflight and SupportBundle custom resources cannot be applied directly from a Helm chart — they require cluster-side CRDs that are not available in most shared clusters and that need cluster-admin permissions to install. Embed the spec in a Kubernetes Secret with the <code>troubleshoot.sh/kind</code> label instead. See <a href="/vendor/preflight-defining">Define preflight checks</a> and <a href="/vendor/support-bundle-customizing">Add and customize support bundles</a>.</p>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'CRDs'?

Comment thread docs/vendor/preflight-defining.mdx Outdated
For Helm applications installed with Helm or KOTS v1.101.0 or later, define preflight checks in a Kubernetes Secret in your Helm chart `templates`. This allows you to define the preflights spec only one time to support running preflight checks in both Helm and KOTS installations.

:::note
Preflight checks must be defined in a Kubernetes Secret (or ConfigMap) when included inside a Helm chart's `templates` directory. Do not place a bare `kind: Preflight` custom resource inside a Helm chart — that pattern is not supported in most shared clusters. The Secret-based approach works in any cluster without additional setup. For more information, see [Discover Cluster Specs](https://troubleshoot.sh/docs/support-bundle/discover-cluster-specs/) in the Troubleshoot documentation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be defined').

Comment thread docs/vendor/preflight-defining.mdx Outdated
* Helm applications installed with KOTS v1.100.3 and earlier
:::note
For Helm charts installed with KOTS v1.101.0 and later, Replicated recommends that you define preflight checks in a Secret in the Helm chart `templates` instead of using the Preflight custom resource. See [Create a Secret](#secret) above.
For Helm charts installed with KOTS v1.101.0 and later, Replicated recommends that you define preflight checks in a Secret in the Helm chart `templates` instead of using the Preflight custom resource. See [Create a Secret](#secret) above. Do not place a bare `kind: Preflight` resource inside a Helm chart.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ [vale] reported by reviewdog 🐶
[Replicated.PositionalLanguage] Avoid spacial and directional language like 'above'. Instead, use 'on this page', 'the following', or link to the section.

* Helm applications installed with KOTS v1.94.2 and later

:::note
Support bundle specs must be defined in a Kubernetes Secret (or ConfigMap) when included inside a Helm chart's `templates` directory. Do not place a bare `kind: SupportBundle` custom resource inside a Helm chart — that pattern is not supported in most shared clusters. The Secret-based approach works in any cluster without additional setup. For more information, see [Discover Cluster Specs](https://troubleshoot.sh/docs/support-bundle/discover-cluster-specs/) in the Troubleshoot documentation.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 [vale] reported by reviewdog 🐶
[Replicated.Passive] In general, use active voice instead of passive voice ('be defined').

banjoh
banjoh previously approved these changes May 5, 2026
Copy link
Copy Markdown
Contributor

@paigecalvert paigecalvert left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reverted the preflight and support bundle how-to changes in favor of #4027

Linter changes lgtm

@paigecalvert paigecalvert merged commit 554fc4a into main May 6, 2026
5 checks passed
@paigecalvert paigecalvert deleted the laverya/sc-136963/troubleshoot-crds-don-t-exist-on-helm-cli branch May 6, 2026 22:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type::docs Improvements or additions to documentation type::feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants