-
Notifications
You must be signed in to change notification settings - Fork 506
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
Update ArgoCD Rollouts to 1.0.1 to fix a compatibility issue #236
Update ArgoCD Rollouts to 1.0.1 to fix a compatibility issue #236
Conversation
…ate necessary k8s machinery
18420e6
to
71fdb53
Compare
@tete17 Image is available for testing. |
@tete17 Image is available for testing. |
I just made a similar comment here: #232 (comment), but it may be wise to switch to using the kubernetes dynamic client to get/list rollouts rather than importing the generated client in the Argo Rollouts repo, which causes some obnoxious golang dependencies. Argo Rollouts has some kubernetes imports which are hard to get rid of. The dynamic client approach will also automatically give support for v1.0 Rollouts (this PR is only adding support for v0.10) |
Hi @jessesuen I am really happy you like the support of Rollouts here. I implemented for my company since we are heavy users of both at the same time and they are both awesome. I had to update the dependency version because we faced a bug in our system that prevented to updated the Rollout if the I am more than happy to try out the dynamic client approach (it may be even beneficial to the project since they also depend on openshift project and they don't provide releases 😠 ) I am afraid I am also a half noobie to k8s api machinery and golang. I have been mostly following this guide https://www.martin-helmich.de/en/blog/kubernetes-crd-client.html and using your provided client to query the Rollouts, can you maybe provide me some docs or any info on how to get a dynamic client working please? |
PS: Since you like seeing your project supported guess what tool are we using for rendering our yaml? https://github.com/GoogleContainerTools/skaffold/blob/f280aa8325283a0f080989acef120c5597ebc4b7/pkg/skaffold/kubernetes/manifest/visitor.go#L42 |
34e0b5e
to
7643a27
Compare
@tete17 Image is available for testing. |
Quick update @jessesuen I gave it a try your idea to use the dynamic client. I followed the following example https://github.com/kubernetes/client-go/blob/master/examples/dynamic-create-update-delete-deployment/main.go I don't think it is impossible but It becomes much more cumbersome for now than adding a bunch of replace clauses. The reason being is the current implementation of Rollouts depends on modifying the current In order to get rid of the dependency a significant amount of refactoring needs to happen to change this behaviour. For me particularly we need this support a bit sooner than that. We are already affected by a bug and this feels like a good and quick remediation plan for now. |
@tete17 Image is available for testing. |
This changed also required to update the k8s machinery.
All the newly fixed packages are required because ArgoCD Rollouts still depend on
k8s.io/kubernetes
On future release they will drop the dependency and we can also remove all the
replace
block.Should fix #232