kube-rs / k8s-pb

Playing with Kubernetes protobufs
Apache License 2.0
19 stars 6 forks source link

Add renovate automatic upgrade for Kubernetes version #36

Closed clux closed 1 month ago

clux commented 5 months ago

Can add an annotation in the justfile above line 1: https://github.com/kube-rs/k8s-pb/blob/main/justfile#L1

this can tell renovatebot where to get updates and post a PR with the changed version number when it's changed.

you can also use postUpdateTasks to run the the codegen steps and submit a PR.

more in depth article showcasing the basics: https://jamiemagee.co.uk/blog/maintaining-aur-packages-with-renovate/

Main Problem: Which Renovate

practically this is not hard. as long as https://github.com/renovatebot/renovate can run up against the repo, adding a config and the regex managers for it is not super difficult.

however, not sure if CNCF hosts renovate, or if there's a good free way for "orgs". would not like to buy into mend's stuff since they seem very profit focused and only have stupid prices for companies of 100 devs and no mention of open source afaikt (maybe i skimmed too quickly though).

clux commented 5 months ago

i am experimenting with a self-hosted renovate now. i have a fairly access constrained member account @sszynrae in here with the minimal pat hooked up, so hopefully it'll do something when there's a new kubernetes release.

it's meant to create PRs to bump this line

https://github.com/kube-rs/k8s-pb/blob/main/justfile#L1-L2

and then run the codegen steps afterwards.

clux commented 1 month ago

Played around a with this today.. It's basically almost working. I have an install script similar to this (but running on my own k3s) that adds the runtime dependencies, i can run 3/4 steps to generate the output (as can be seen in #43), but don't have a good way to cargo fmt the output atm because the renovate image does not contain rustup/rustfmt nor any good way to install it without sudo in the image (as is it setup). I also cannot run cargo fmt after (because that's after the PR has been raised) :upside_down_face:

maybe i need to force sudo in the CronJob template and hack the chart instead to get rustup/rustfmt in there.

..or maybe i do a rustfmt pr job against the renovate job and merge rustfmt -> renovate -> main :upside_down_face:

clux commented 1 month ago

Got it working. Sideloading a rustup install (via the rustup shell script) with rustfmt (despite rustc / cargo already existing) so we can get it installed. Feels inefficient, and takes 10s to run, but it's automated.. Maybe later renovate will support formatters better.

clux commented 1 month ago

Made it better. Renovate job now runs it's own image now with all the deps installed running this cronjob setup on my homelab. For improvements, please redirect therein.