-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
Reorganize binaries to reduce image size #5005
Comments
Do you think about something like For the latter, I would propose naming this new binary
I guess for starting locally, testing etc the sub command approach would be more suitable than a busybox-esque approach. |
I hope this task will also look at any unused binaries that are left out or forgot to delete in the build process. Example: we might need a lot of binaries to build the application but a-lot of them are not needed to run the container, I see that we are deleting the binaries that are not required in runtime container but I also think all of them are not removed and few are left out. |
What binaries exactly do you mean, @iam-veeramalla? Actually, we use a multi-stage build process and copy only the required binaries to the final target image that gets distributed. Are there some we have erroneously copied, or do you mean binaries that come from the base image |
@jannfis Yes, I went through the build process, I feel it is well organised with multi-stage build concept. I wonder why we still need binaries likes kubectl in the final target. Argo controller makes api calls with kube-api to fetch the resource information right? Am I missing something here? Please correct me as its my early days with argo. |
Ah, good catch about the @jessesuen / @alexmt - this seems like a relict, can we remove it from the distribution or are there any non-obvious dependencies to |
@jannfis Let me know if you need any PR for this |
Interesting. I didnt realize busybox did that, nor realize that was an option. I don't really have a strong opinion on this, other than that I don't think most people will understand/know that argv[0] will then be significant, and it might make local development annoying.
AFAIK, kubectl can/should be removed. |
I will take a look at this issue. |
Spoke with @alexmt and we agree the both the busy box approach as well as sub commands is the way to do this. Busybox prevents upgrade/migration release notes. sub commands allow easier development. |
ArgoCD Binaries Structure: argocd/argocd-all: (busybox format)
|
Signed-off-by: iam-veeramalla <[email protected]>
Signed-off-by: iam-veeramalla <[email protected]>
I just tried to work through the Contribution guide and noticed that running Is that an intended site-effect of this issue? If so, the documentation would need a rework. It might also be an option to have kubectl only as part of the test image. |
) Signed-off-by: iam-veeramalla <[email protected]>
Summary
It doesn't make sense to have separate: argocd-server, argocd-application-controller, argocd-repo-server binaries, since these are not user-facing binaries and only bloat the image.
Meanwhile, argocd-util, is a useful binary meant for operators.
Proposal
This should reduce our image size considerably (by estimated ~200MB)
The text was updated successfully, but these errors were encountered: