Uploaded image for project: 'Apache YuniKorn'
  1. Apache YuniKorn
  2. YUNIKORN-1865

Shim: Update build process to follow standard conventions

Attach filesAttach ScreenshotVotersWatch issueWatchersCreate sub-taskLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    Description

      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.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            ccondit Craig Condit
            ccondit Craig Condit
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment