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

Support building the Ingress Container with Podman #2924

Closed
aknot242 opened this issue Aug 11, 2022 · 10 comments · Fixed by #3102
Closed

Support building the Ingress Container with Podman #2924

aknot242 opened this issue Aug 11, 2022 · 10 comments · Fixed by #3102
Assignees
Labels
proposal An issue that proposes a feature request

Comments

@aknot242
Copy link
Contributor

Is your feature request related to a problem? Please describe.
The current image build is Docker-centric, and you cannot build the ingress controller with Podman.

Describe the solution you'd like
The instructions, Makefile and Dockerfile should support building the ingress container with podman.

Describe alternatives you've considered
Attempted to simply alias podman to docker, however this alone does not work since unix alias will not expand into non-interactive shells. Additionally, a number of changes need to be made to the Makefile and Dockerfile to make them compatible with the feature set that podman supports (such as removing --link flags).

Additional context
Add any other context or screenshots about the feature request here.

@aknot242 aknot242 added the proposal An issue that proposes a feature request label Aug 11, 2022
@github-actions
Copy link

Hi @aknot242 thanks for reporting!

Be sure to check out the docs while you wait for a human to take a look at this 🙂

Cheers!

@lucacome
Copy link
Member

Hi @aknot242

The Docker images that we create are OCI compliant and can be run in Podman, so I think you just want to be able to build the Dockerfile with buildah? Am I getting that right?

If that's the case the good news is that buildah just released a version 3 days ago that supports multi-stage builds (what we use) https://github.com/containers/buildah/releases/tag/v1.27.0 but it's going to take a while before it's available as default in the various operating systems.
I was actually keeping an eye on this and wanted to try it myself the other day, but it looks like the only option for now is to compile buildah from source.

@aknot242
Copy link
Contributor Author

Correct, @lucacome. The request is about building with podman (technically, buildah, to your point). Use case summary is being able to build it locally (on a developer's desktop) using freely available tools in light of Docker Desktop's licensing changes.

@brianehlert
Copy link
Collaborator

docker as a cli and build tool is not tied to Docker Desktop nor docker desktop licensing.
You can simply install the docker cli without Docker Desktop and be able to build. I don't believe anything changed there.

@codygreen
Copy link

This is only true for Linux machines. There is no docker-cli for Mac or Windows and the docker FAQ states the user must install a linux virtual machine.

If you use a Mac, you can install Docker CLI and Engine inside a virtual machine, using VirtualBox or VMware Fusion for example, which may require purchasing a license for VirtualBox or VMware Fusion. On Windows you could install and run Docker CLI and Engine inside WSL2.
If you use a Linux machine you can easily use the Docker CLI and Docker Engine, See the documentation on installing Docker Engine for instructions. Docker Desktop is not yet available for Linux.
https://www.docker.com/pricing/faq/

Ideally, we want users to be able to build the NIC containers natively on any platform they want.

@codygreen
Copy link

I think we're getting off track here... this request is about removing operational complexity and making it easier for more people to build and use NIC.

@lucacome
Copy link
Member

lucacome commented Aug 12, 2022

@codygreen @aknot242 I understand (and share) the desire to make it easier for people to use the Ingress Controller. That's why we have pre-built images for as many OSs and architectures as possible. Is there something missing that makes you want to build the images manually? Maybe that's the real issue.

I think the normal (and recommended) use case for the majority of people is to use one of the images that we publish (and please feel free to open an issue if you think something is missing) since they have our "stamp of approval" 🙂 but even if somebody wants to build the image manually, Docker is still the most popular by far and removing features just to make the Dockerfile compatible with buildah doesn't seem like a really good trade-off, at least for now.

This is only the second request (?) that we received about buildah (#2490) since the change in Docker Desktop licensing that was mentioned, which went into effect in August 2021, so that makes me think that the alternatives to Docker are not very popular, but I'm happy to be proven wrong.

TL;DR my suggestion is to use pre-built images as much as possible and open issues/proposals about expanding on that.

@lucacome
Copy link
Member

Linking containers/buildah#4295 that will reduce the number of warnings and containers/podman#15423 that is a blocker at the moment.

@lucacome
Copy link
Member

Adding containers/buildah#4325 to the list

@lucacome lucacome self-assigned this Dec 13, 2022
defanator added a commit to defanator/kubernetes-ingress that referenced this issue Jan 11, 2023
@lucacome lucacome moved this from Done to Backlog in NGINX Ingress Controller Feb 14, 2023
defanator added a commit to defanator/kubernetes-ingress that referenced this issue Mar 25, 2023
@tomasohaodha tomasohaodha moved this from Backlog to Todo in NGINX Ingress Controller May 4, 2023
@brianehlert
Copy link
Collaborator

Still not hearing the feedback on this that we would like to prioritize it at this time.
Closing. Will revisit if it gains additional traction through Discussions, Ideas

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
proposal An issue that proposes a feature request
Projects
Archived in project
5 participants