Skip to content

Commit bc2b152

Browse files
robaikenCopilotjc-clark
authored
Add Dependabot ecosystem support for helm - [GA] [GA] #17730 (#55235)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Joe Clark <31087804+jc-clark@users.noreply.github.com>
1 parent 2ba14cc commit bc2b152

File tree

5 files changed

+85
-1
lines changed

5 files changed

+85
-1
lines changed

content/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot.md

+25
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,31 @@ registries:
256256

257257
{% endraw %}
258258

259+
{% ifversion dependabot-helm-support %}
260+
261+
### `helm-registry`
262+
263+
{% data variables.product.prodname_dependabot %} works with any OCI-compliant registries that implement the Open Container Initiative (OCI) Distribution Specification. For more information, see [Open Container Initiative Distribution Specification](https://github.com/opencontainers/distribution-spec/blob/main/spec.md) in the `opencontainers/distribution-spec` repository. {% data variables.product.prodname_dependabot %} supports authentication to private registries via a central token service or HTTP Basic Auth. For further details, see [Token Authentication Specification](https://helm.sh/docs/helm/helm_registry_login/) in the Docker documentation and [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) on Wikipedia.
264+
265+
The `helm-registry` type supports username and password. {% data reusables.dependabot.password-definition %}
266+
267+
{% data reusables.dependabot.dependabot-updates-path-match %}
268+
269+
{% raw %}
270+
271+
```yaml copy
272+
registries:
273+
helm_registry:
274+
type: helm-registry
275+
url: https://registry.example.com
276+
username: octocat
277+
password: ${{secrets.MY_REGISTRY_PASSWORD}}
278+
```
279+
280+
{% endraw %}
281+
282+
{% endif %}
283+
259284
### `hex-organization`
260285

261286
The `hex-organization` type supports organization and key.

content/code-security/dependabot/working-with-dependabot/dependabot-options-reference.md

+3
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,9 @@ Package manager | YAML value | Supported versions |
382382
| {% ifversion dependabot-dotnet-sdk %} |
383383
| .NET SDK | `dotnet-sdk` | >=.NET Core 3.1 |
384384
| {% endif %} |
385+
| {% ifversion dependabot-helm-support %} |
386+
| Helm Charts | `helm` | v3 |
387+
| {% endif %} |
385388
| Hex | `mix` | v1 |
386389
| elm-package | `elm` | v0.19 |
387390
| git submodule | `gitsubmodule` | Not applicable |

content/code-security/dependabot/working-with-dependabot/guidance-for-the-configuration-of-private-registries-for-dependabot.md

+42-1
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ You'll find detailed guidance for the setup of the following package managers:
3434
* [Cargo](#cargo){% endif %}
3535
* [Docker](#docker){% ifversion dependabot-docker-compose-support %}
3636
* [Docker Compose](#docker-compose){% endif %}
37-
* [Gradle](#gradle)
37+
* [Gradle](#gradle){% ifversion dependabot-helm-support %}
38+
* [Helm Charts](#helm-charts){% endif %}
3839
* [Maven](#maven)
3940
* [npm](#npm)
4041
* [NuGet](#nuget){% ifversion dependabot-updates-pub-private-registry %}
@@ -169,6 +170,46 @@ Docker Compose adheres to the same configuration guidelines as Docker. For more
169170

170171
{% endif %}
171172

173+
{% ifversion dependabot-helm-support %}
174+
175+
### Helm Charts
176+
177+
Helm supports using a username and password for registries. For more information, see [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot#helm-registry).
178+
179+
Snippet of `dependabot.yml` file using a username and password.
180+
181+
{% raw %}
182+
183+
```yaml copy
184+
registries:
185+
helm_registry:
186+
type: helm-registry
187+
url: https://registry.example.com
188+
username: octocat
189+
password: ${{secrets.MY_REGISTRY_PASSWORD}}
190+
```
191+
192+
{% endraw %}
193+
194+
#### Notes
195+
196+
{% data variables.product.prodname_dependabot %} works with any OCI-compliant registries that implement the Open Container Initiative (OCI) Distribution Specification. For more information, see [Helm Registry Login](https://helm.sh/docs/helm/helm_registry_login/) in the Helm docs.
197+
198+
{% data variables.product.prodname_dependabot %} supports authentication to private registries via a central token service or HTTP Basic Auth. For more information, see [Token Authentication Specification](https://docs.docker.com/registry/spec/auth/token/) in the Docker documentation and [Basic access authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) on Wikipedia.
199+
200+
When configuring Dependabot for Helm charts, it will also automatically update the Docker images referenced within those charts, ensuring that both the chart versions and their contained images stay up to date.
201+
202+
#### Limitations and workarounds
203+
204+
* {% data variables.product.prodname_dependabot %} only updates dependencies in `Chart.yaml` files.
205+
* Images in `values.yaml` files and `Chart.yaml` files are updated.
206+
* Helm dependency updates are first attempted via the Helm CLI, with fallback to searching `index.yaml`.
207+
* Images that have an array of versions in the YAML cannot be updated.
208+
* Image names may not always be detected in Helm files or YAML files.
209+
* For Helm v2 updates, use the [Docker ecosystem](#docker).
210+
211+
{% endif %}
212+
172213
### Gradle
173214

174215
{% data variables.product.prodname_dependabot %} doesn't run Gradle but supports updates to certain Gradle files. For more information, see "Gradle" in [AUTOTITLE](/code-security/dependabot/ecosystems-supported-by-dependabot/supported-ecosystems-and-repositories#gradle).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Reference: #17730
2+
# Helm Charts support for Dependabot
3+
versions:
4+
fpt: '*'
5+
ghec: '*'
6+
ghes: '> 3.17'

data/reusables/dependabot/supported-package-managers.md

+9
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Composer | `composer` | {% ifversion dependabot-updates-composerv1-c
1818
| {% ifversion dependabot-dotnet-sdk %} |
1919
.NET SDK | `dotnet-sdk` | >=.NET Core 3.1 | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | Not applicable | Not applicable | Not applicable |
2020
| {% endif %} |
21+
[Helm Charts](#helm-charts) | `helm` | {% ifversion dependabot-helm-support %}v3{% else %}Not supported{% endif %} | {% ifversion dependabot-helm-support %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Not supported" %}{% endif %} | {% octicon "x" aria-label="Not supported" %} | {% ifversion dependabot-helm-support %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Not supported" %}{% endif %} | {% ifversion dependabot-helm-support %}{% octicon "check" aria-label="Supported" %}{% else %}{% octicon "x" aria-label="Not supported" %}{% endif %} | Not applicable |
2122
Hex | `mix` | v1 | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
2223
elm-package | `elm` | v0.19 | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} |
2324
git submodule | `gitsubmodule` | Not applicable | {% octicon "check" aria-label="Supported" %} | {% octicon "x" aria-label="Not supported" %} | {% octicon "check" aria-label="Supported" %} | {% octicon "check" aria-label="Supported" %} | Not applicable |
@@ -112,6 +113,14 @@ For {% data variables.product.prodname_dependabot_security_updates %}, Gradle su
112113
> * When you upload Gradle dependencies to the dependency graph using the {% data variables.dependency-submission-api.name %}, all project dependencies are uploaded, even transitive dependencies that aren't explicitly mentioned in any dependency file. When an alert is detected in a transitive dependency, {% data variables.product.prodname_dependabot %} isn't able to find the vulnerable dependency in the repository, and therefore won't create a security update for that alert.
113114
> * {% data variables.product.prodname_dependabot_version_updates %} will, however, create pull requests when the parent dependency is explicitly declared as a direct dependency in the project's manifest file.
114115
116+
#### Helm Charts
117+
118+
{% data variables.product.prodname_dependabot %} supports using a username and password for registries. For more information, see [AUTOTITLE](/code-security/dependabot/working-with-dependabot/configuring-access-to-private-registries-for-dependabot#helm-registry).
119+
120+
{% data variables.product.prodname_dependabot %} works with any OCI-compliant registries that implement the Open Container Initiative (OCI) Distribution Specification.
121+
122+
When configuring Dependabot for Helm charts, it will also automatically update the Docker images referenced within those charts, ensuring that both the chart versions and their contained images stay up to date.
123+
115124
#### Maven
116125

117126
{% data variables.product.prodname_dependabot %} doesn't run Maven but supports updates to `pom.xml` files.

0 commit comments

Comments
 (0)