-
Notifications
You must be signed in to change notification settings - Fork 981
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
Tagged helm chart values in values.yaml
don't match image tag
#5415
Comments
Hello! |
Definitely something that would be good to get fixed. Can't upgrade from 0.32+ to 0.33+ :/ |
I think this is related to #4248. |
kill me why its so hard to understand your repo !! branch "release-v0.35.4" it not same as tag v0.35.4 argocd cant download helm as missing index or index not config , helm pull --version release-v0.35.4 --repo https://github.com/aws/karpenter charts/karpenter 404 Not Found helm not support OCI and you push to OCI do you want us to work with karpenter ? Thansk |
Has there been any update on this? Its making it very challenging to upgrade to the newer versions due to this mismatch. |
@noamgreen Karpenter is only published via OCI. @edas-smith the Karpenter Helm chart now uses a correct SemVer. helm pull oci://public.ecr.aws/karpenter/karpenter --version 0.36.0 |
As I mentioned in my duplicate ticket, I was able to work around this issue by pointing to branch release-v0.36.2 rather than the tag v0.36.2 |
@paul-civitas I think there might be some confusion between the Git tag (idiomatically the version with a Git tags can't start with a number, thus the idiom of prefixing with a In the case of the Karpenter project all of the OCI tags are SemVer, for consistency, so if you have the Git tag you just need to remove the |
@stevehipwell well the fundamental issue is that the OCI tag for the helm chart, that the version with the critical fix is not in existence. Or at least it was not at the time. |
@paul-civitas the OCI tags ( You can check that they're valid with the following commands. Please note the lack of a docker pull public.ecr.aws/karpenter/controller:0.36.2
helm pull oci://public.ecr.aws/karpenter/karpenter --version 0.36.2 |
@stevehipwell sorry I misspoke. The issue is that there was not a git tag that had a helm chart that had a value pointing to any image with this OCI tag. |
Here's a simple question, that might show what the problem is. Question: What git tag to I point argoCD to, such that I'm using a version of the helm chart, that is pointing to OCI tag 0.36.2 of the OCI image in values.yaml? |
Following up on this. Git tag Git tag So what is the right answer? |
@paul-civitas the Git tag just isn't relevant here (it'll be tracking the previous version of the Helm chart as it triggers the release process). I'm not an Argo CD expert but it sounds like you've not configured it correctly for OCI if you're trying to use a Git tag. Could you share your config? |
The git tag is what this issue is about. The git tag tracking the previous version of the helm chart, rather than the version corresponding to the tag, is unusual behavior that is throwing us off, and contrary to how other open source projects work That is why issues are being created.
It's pretty straightforward. You point ArgoCD to a git reference and it deploys the helm chart from git. My expectation was that by pointing ArgoCD to the git reference I was able to resolve this issue by pointing ArgoCD to git reference |
@paul-civitas the Git tag triggers the Helm chart OCI release which will result in an additional commit to save the current state of the chart after the release; having the chart content be part of the release tag commit isn't expected behaviour (this is idiomatic where the chart and binary share a repo due to a chicken/egg problem). Furthermore the Helm chart releases are only provided via the OCI registry (as documented); the HTTP Helm registry was deprecated (I think in the `0.17.0 release), and any behaviour linking a Helm release to a Git release tag was incidental implementation detail (likely due to non-automated releases being cut on a developer's machine).
I'm going to have to say that it isn't that simple, as you're using it incorrectly in this case. The two documented Helm targets are HTTP registry (first example) and OCI (second example). You can use a Git reference as you're attempting to do, but it's only going to work correctly where supported (and it isn't supported for Karpenter).
That might work but it's an implementation detail which could be changed at an point, please configure Argo CD to use the Karpenter OCI registry. |
I know Amazon is trying to grow adoption of their OCI registry, but it currently has serious usability challenges. This would be a practical suggestion if you were to instead move to a more stable and widely used public OCI registry. |
@paul-civitas could you expand on this? I'm not aware of any current issues with ECR public (ECR private has issues with figuring out the correct regional AWS account but this is more UX than anything else and not what Karpenter uses). Based on the number of EKS Kubernetes clusters in use (I remember a number like 70% passed around a couple of years ago) I'd say that ECR is probably one of most widely used public OCI registries. FYI I don't work for Amazon. |
It might be fine but last time we tried to use it they required authentication for public access, and it expired after 24 hours. Which didn't play nice with argoCD, as argo wanted either anonymous access or access with fixed credentials for OCI chart registries. In order to manage this people had to set up a cronjob to rotate a secret every day, and plug that secret into argo. There was discussion on making this less painful but it was closed as "not planned." So it's way way simpler to just point things at git. |
@paul-civitas you don't need any auth for public ECR, the Karpenter docs (the ones I linked above) make this clear. FYI the issue link above is for private ECR registries (with the |
Ok thanks. Public ECR was only launched in 2020 so some of my experience is probably out of date. I'll give using the registry another shot. |
Just ended up here after some good amount of debugging.... |
Description
** READ BEFORE CONTINUING: If your issue is not specific to AWS, please cut a ticket in kubernetes-sigs/karpenter.
Observed Behavior:
Currently, our CD rollout for new
karpenter-provider-aws
images is triggered based off agit tag
being pushed to the upstream repo. This push to the upstream repo results in the following operations happening:The order of this release process means that the changes to the repo are merged after the repo has already been tagged. What this means, is that the chart that is stored in the repo that is tagged
v0.32.1
is different than the pushed chart that ends up in the OCI artifact store in our public ECR.In general, this shouldn't happen. The tag should be our source-of-truth, implying that whatever we tag in the repository has the same representation for the chart and the image with the same tag in the ECR. This is currently true for the image, but is not true for the chart.
I'd like to see us re-work the release process so that what we tag is also what we push. Practically, this means that we need changes to the chart to be created and merged-in first before the actual tag creation happens.
The text was updated successfully, but these errors were encountered: