Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for Helm chart dependencies #2237

Open
paddycarey opened this issue Sep 10, 2018 · 37 comments
Open

Support for Helm chart dependencies #2237

paddycarey opened this issue Sep 10, 2018 · 37 comments
Labels
Keep Exempt this from being marked by stalebot T: feature-request Requests for new features T: new-ecosystem Requests for new ecosystems/languages

Comments

@paddycarey
Copy link

Hi,

Just adding a request for support for Helm chart repositories. I realise you have a full roadmap/workload already, but just wanted to write the request down somewhere.

https://docs.helm.sh/developing_charts/#chart-dependencies

Thanks!

@greysteil
Copy link
Contributor

greysteil commented Sep 10, 2018

I'm 👍 on this, and the implementation shouldn't be too tricky (parsing will be trivial, and there's no concept of version conflicts so the update checker should be simple, too).

Thanks for the suggestion!

@mxandeco
Copy link

Hi,

Is there any progress on this feature? Is helm support still in the plans?

@greysteil
Copy link
Contributor

Not yet - we have our work cut out with the GitHub integration and the associated increase in scale for Dependabot, but we'd like to get to this (and it's something the community can add, as the relevant addition would be in Dependabot Core.

@varac
Copy link

varac commented Jun 11, 2020

Any progress on this ? I'd really love to use dependabot for helm chart updates as well.

@infin8x infin8x transferred this issue from dependabot/feedback Jun 29, 2020
@infin8x infin8x added the T: new-ecosystem Requests for new ecosystems/languages label Jul 2, 2020
@hazcod
Copy link

hazcod commented Aug 21, 2020

Interestingly for some stuff I actually track the source repo and parse the version (e.g. out of the go.mod file), but this is not possible with charts. Anyone else an idea for a workaround?

EDIT: I used the same workaround for e.g. kubernetes-dashboard, but it won't work if the Chart is not in its own git repo.
ironpeakservices/infrastructure@bf9b546

@siavashs
Copy link

I've started implementing this feature today.

@hazcod
Copy link

hazcod commented Aug 29, 2020

@siavashs how would that work? Using helmsman?

@siavashs
Copy link

@hazcod The logic I'm working on currently:

  • The Chart.yaml will be parsed for dependencies. The dependencies will be checked against their respective repository.
  • Repositories have an index.yaml which will be fetched and parsed to check for dependency updates.

The above method allows updating dependencies without needing to run any external binaries.

There are other things that I haven't looked into yet:

  • Updating Chart.lock (if present) without using helm command.
  • Updating archives under charts/
  • Supporting provenance.

@siavashs
Copy link

siavashs commented Sep 20, 2020

I have the initial implementation ready, the only problems are:

  • YAML comments cannot be parsed unless I write a custom parser (not gonna happen)
  • Dependency list indentation will be lost if they have any indentation

Now regarding the following items:

  • Updating Chart.lock (if present) without using helm command.
    This is tricky as helm uses an internal Go package to generate the SHA256 digest (it combines the list of chart dependencies and lock dependencies, etc.)
    It's possible to replicate it in Ruby but they will probably break it in V4, whenever that happens.
    Alternative option is to run helm dep update.
  • Updating archives under charts/
    Seems easy to do without running helm but if I decide to go with helm dep update for Chart.lock then no custom implementation is required.
  • Supporting provenance.
    Similar to previous item.

Let me know if you have any comments or suggestions. Otherwise expect a PR in coming weeks.

@hazcod
Copy link

hazcod commented Jan 19, 2021

@siavashs that already seems like a great starting point? Did you open a PR already?
Thank you for your work!

@siavashs
Copy link

@hazcod not yet, unfortunately I was too busy.
I'll cleanup the code and open a PR with the initial support for Chart.yaml and then try to implement the rest of the items in future iterations.

@WyriHaximus
Copy link
Contributor

@siavashs In my experience in the past with adding features, the Dependabot team is helpful with this at their own pace.

Also, I'm pretty sure enough of us are interested to have this out there to help out with feedback and core suggestions.

@siavashs
Copy link

Checkout the draft PR here: #3031
I'll add tests soon 😄

@WyriHaximus
Copy link
Contributor

  • Updating archives under charts/
    Seems easy to do without running helm but if I decide to go with helm dep update for Chart.lock then no custom implementation is required.

Let me know if you have any comments or suggestions. Otherwise expect a PR in coming weeks.

So regarding that specific point, is it only going to update when there are archives under charts/ or also add them when they aren't committed?

@siavashs
Copy link

I think dependency archives should be only updated and not added (if possible).

@WyriHaximus
Copy link
Contributor

Yeah I agree, hence asking. Well you have file access so you could compare before and after and only commit archives when existing files updated.

@jurre
Copy link
Member

jurre commented Jan 26, 2021

We're currently not adding any new ecosystems, but Helm charts is something we would definitely love to support in the future. The best option if you'd like to build and use this, would be releasing it as a separate gem, using dependabot-core as a dependency and running it on CI (for example using a scheduled GH action).

Once we open up support for new ecosystems again, we could then potentially upstream those changes into dependabot-core.

@mteodori
Copy link

consider that most of these updates are paired with tools like helm-docs or terraform-docs that update README files so just updating the manifest is not enough to have a green build

@hazcod
Copy link

hazcod commented Jan 26, 2021

For those who want to pick up automated dependencies quicker, it seems renovatebot supports helm and more.

@jurre jurre added the T: feature-request Requests for new features label Nov 26, 2021
@JesperTerkelsen
Copy link

It would still be nice to have this feature in dependabot as well.

@alxgomz
Copy link

alxgomz commented Jun 3, 2022

Concrete use-case: The current bitnami mess in bitnami/charts#10539 would be more easily managed with dependabot being able to track charts dependencies

@theaccordance
Copy link

It's unfortunate that expansion of ecosystems has been halted, but I understand and appreciate posting the decision. I'm adding my name to the list of people who would like to see this feature request realized, as it would add significant value to keeping up with some off our self-hosted resources that need to stay closer to the latest track.

@niqdev
Copy link

niqdev commented Nov 8, 2022

Hi, I don't know you, but I can't keep up with the ArgoCD helm chart updates 🤣 ... and I needed a quick, simple, maintainable, and very flexible solution because some of the versions are declared in the values.yaml while other in Chart.yaml, so I ended up writing helm-dependencies-action!

I documented as much as I could in the readme, and this is an example of how to use it

It's not feature-complete but for now, it does the job! If you have any suggestions or you want to contribute, you are more than welcome! I hope it helps 😊

@onedr0p
Copy link

onedr0p commented Nov 8, 2022

@niqdev

Wouldn't Renovatebot solve this issue as well? It's FOSS, manages a lot of different types of deps and supports Argo including OCI.

@niqdev
Copy link

niqdev commented Nov 8, 2022

@onedr0p 👀 thanks for the link! It definitely covers way way more and it has nothing to compare! The gist of the action is nothing else than a curl request

curl -sSL "https://artifacthub.io/api/v1/packages/helm/argo/argo-cd/feed/rss" | \
  yq -p=xml '.rss.channel.item[0].title'

5.13.6

and a sed substitution, using jq/yq in whatever file you need, no matter how is the helm chart and covers exclusively yaml files. I suppose for what I need it's more than enough, but I'll definitely look more into it 🙇🏻

@dependabot dependabot deleted a comment from stale bot Nov 29, 2022
@jeffwidman
Copy link
Member

jeffwidman commented Nov 29, 2022

Adding some breadcrumbs re: registries for Helm charts:

To be clear, no promise of supporting this, just adding breadcrumbs to help keep track of external developments in this ecosystem.

@dgteixeira
Copy link

@jurre, any updates on the possible integration of new packages?

@abdulapopoola abdulapopoola moved this to Untriaged in Dependabot Mar 30, 2023
@na-jakobs
Copy link

@abdulapopoola Any update on this?

@moritzschmitz-oviva
Copy link

It's been a while. Are there any updates regarding this feature?

@AlexanderBrevig
Copy link

This is a deal breaker for my employer, and we're willing to contribute a PR for supporting open helm repositories.

Would such a PR be accepted?

@timam
Copy link

timam commented Sep 22, 2024

+1 ; willing to contribute

@maxi-bee
Copy link

maxi-bee commented Dec 5, 2024

+1; renovate has this already, I would expect less from Dependabot

@kbateman
Copy link

kbateman commented Dec 5, 2024

+1; would be helpful

1 similar comment
@jsayerascb
Copy link

+1; would be helpful

@alxgomz
Copy link

alxgomz commented Dec 9, 2024

Let's face it, this issue is opened for more than 6 years and given the looooong track of features being requested and never implemented by GitHub, I have personally lost hope anything would happen.
We have chosen to use Updatecli instead which - imho - is way better and at least properly maintained by someone who DO care about users' feedback.
There are plenty of other solutions as well, but updatecli is the one I know best and feel comfortable recommanding

@abdulapopoola
Copy link
Member

abdulapopoola commented Jan 8, 2025

This is a deal breaker for my employer, and we're willing to contribute a PR for supporting open helm repositories.

Would such a PR be accepted?

Sorry for the late response, yes, such a contribution will be very welcome.

We do apologize for the lack of responses and we are working hard on becoming more responsive in coming weeks.

Tagging @AlexanderBrevig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Keep Exempt this from being marked by stalebot T: feature-request Requests for new features T: new-ecosystem Requests for new ecosystems/languages
Projects
Status: Planned
Development

No branches or pull requests