Craig Condit created YUNIKORN-1865:
--------------------------------------
Summary: Shim: Update build process to follow normal conventions
Key: YUNIKORN-1865
URL: https://issues.apache.org/jira/browse/YUNIKORN-1865
Project: Apache YuniKorn
Issue Type: Improvement
Components: shim - kubernetes
Reporter: Craig Condit
Assignee: Craig Condit
Our current build process does several things that are suboptimal:
- Temporary build files are created within source location (Docker content)
- Output goes in _output instead of more standard locations (i.e. build)
- "clean" target is overused, resulting in far slower builds than necessary
- Build artifacts are inconsistently named, leading to confusion
- Build targets are all marked .PHONY meaning they cannot be cached properly
Additionally, using (for example) a different build of go should be possible.
We should update the build process as follows:
- Move Dockerfiles into docker/{imagename}/
- Use output directory for all generated content
- Use output/dev for development-time binaries
- Use output/bin for production-time binaries
- Use output/docker/{imagename} for temporary Docker build environments
- Allow setting GO env var to override go binary name (i.e. GO=go1.20.5 or
GO=/opt/go1.20.5/bin/go)
- Use proper dependencies for Makefile build targets
- Name output binaries as: yunikorn-scheduler, yunikorn-scheduler-plugin, and
yunikorn-admission-controller
Experimentally, doing this results in significant speedups for deployments. An
incremental "make image" with no changes now completes in a few seconds.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]