Skip to content
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

Simplify and consolidate image building in neighbors. #9434

Closed
3 tasks done
Tracked by #11627
dekiel opened this issue Nov 30, 2023 · 7 comments
Closed
3 tasks done
Tracked by #11627

Simplify and consolidate image building in neighbors. #9434

dekiel opened this issue Nov 30, 2023 · 7 comments
Assignees
Labels
area/ci Issues or PRs related to CI related topics kind/chore Categorizes issue or PR as related to a chore.

Comments

@dekiel
Copy link
Contributor

dekiel commented Nov 30, 2023

Description

With current setup for our team we have multiple tools to build oci images and multiple locations to store information which images to build and how to do it?

Tools to build.

Locations in kyma-project/test-infra we store information about images to build.

  • cmd/image-builder/images
  • images
  • prow/images
  • .koapps.yaml

All neighbors images should be build with the same tool.
Preferred tool should be SLC-29 certified image building solution.
All neighbors images definitions should be stored in location according to one team policy. The policy should define clear guideline where and how to store image definition. This should be a one central location for all images or each image should be stored along with application code it runs or is used by.

Reasons

Our build image setup uses multiple different technologies and doesn't follow any clear rules where to store images definitions.
This brings unnecessary complexity, increase maintenance workload and learning curve.

Acceptance Criteria

  • All images are build with image builder using Github Actions
  • A policy about location to store images definitions exists
  • All image definitions are stored in a location aligned with policy
@dekiel dekiel added area/ci Issues or PRs related to CI related topics kind/chore Categorizes issue or PR as related to a chore. labels Nov 30, 2023
@Ressetkk
Copy link
Contributor

Ressetkk commented Nov 30, 2023

Ko is used to not use Dockerfiles in go apps, greatly simplifying maintenance of go-based images and keeping central standard in build environment for each application. When you build go application you don't have to care about writing a Dockerfile, maintaining it, bumping or writing yet another configuration in dependabot, when the tool can provide everything based on centralized source with separate processes.

docker build in testimages is used to build images that are supposed to be base images and environment images in organization-wide configuration, hence the name "testimages" and to consolidate task of building and pushing image into one job. You just add a dockerfile if needed, and you are done with its own security and maintenance process specific for Docker-based images.

Image-builder is used only for legacy stuff, that is hard to move, like slackmessagesender, which is written in Python. And is used as a substitution for docker-less image building for other teams. It requires its own set of improvements, but there was no real progress there.


Keeping this structure is logical and beneficial for development work, speeding up maintenance across multiple applications that you have to maintain.

@Sawthis
Copy link
Contributor

Sawthis commented Dec 4, 2023

I just wonder if it is worth to migrate test/base images as we will not maintain them in the long-term. But it depends on the effort of migration.

@akiioto
Copy link
Contributor

akiioto commented Dec 4, 2023

I don't actually see the pros with using redundant dockerfiles. ko simplify a lot building process, consistency and dependency management.

@dekiel
Copy link
Contributor Author

dekiel commented Dec 4, 2023

@akiioto we never had redundant dockerfiles. We always had one and only one dockerfile for each image. Same as you have one line in ko.yaml and koapps.yaml files for each image. I don't see a reason we should have redundant dockerfiles. Why you think we need redundant dockerfiles?

Could you please share more details how ko improves dependency management?

With simplify a build process that is true if you have only golang images which doesn't require any custom base images. If that is not true then you have to use ko as an additional building tool, which is not a simplification.

About consistency I agree, but it again limited to golang apps images only. Anything else will not benefit from that.

Copy link

github-actions bot commented Feb 3, 2024

This issue has been automatically marked as stale due to the lack of recent activity. It will soon be closed if no further activity occurs.
Thank you for your contributions.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 3, 2024
Copy link

This issue has been automatically closed due to the lack of recent activity.
/lifecycle rotten

@github-actions github-actions bot closed this as not planned Won't fix, can't repro, duplicate, stale Feb 11, 2024
@kyma-bot kyma-bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Feb 11, 2024
@lilitgh lilitgh reopened this Mar 4, 2024
@lilitgh lilitgh removed the lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. label Mar 4, 2024
@TorstenD-SAP
Copy link

Still relevant and necessary to deprecate prow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/ci Issues or PRs related to CI related topics kind/chore Categorizes issue or PR as related to a chore.
Projects
None yet
Development

No branches or pull requests

7 participants