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

Split up separate components into seperate Images #309

Open
MaxRink opened this issue Oct 6, 2021 · 17 comments
Open

Split up separate components into seperate Images #309

MaxRink opened this issue Oct 6, 2021 · 17 comments
Labels
kind/design Categorizes issue or PR as related to design. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. triage/accepted Indicates an issue is ready to be actively worked on.

Comments

@MaxRink
Copy link

MaxRink commented Oct 6, 2021

Currently everything is bundled into one image, this is usually not good practice as its brings quite a few problems with it, like longer pull times, not being able to do granular updates and such. It also adds complexity to the image build.
I would see a few components that should probably be their own images:

  • MariaDB: unsure if not just using official images is the better option here ( or bitnami charts if running on k8s)
  • webserver
  • ironic
  • dns/dhcp

Please correct me if im wrong with my assumption

@dtantsur
Copy link
Member

dtantsur commented Oct 6, 2021

I full agree with this. I know that @elfosardo was going to look in the same direction, please sync with him before taking any drastic actions. Some comments:

MariaDB: unsure if not just using official images is the better option here

I'd like to use official images if possible. Maybe not straight away. If we need to start with our images - let's do it.

dns/dhcp

A small correction: it's TFTP+DHCP (no DNS, even though we use dnsmasq as the implementation).

webserver

This one is going to be quite tricky. We run ironic/inspector API as WSGI applications behind httpd. We could of course split all these, but I don't feel well running 3 (?) httpd instances just for Metal3.

@MaxRink
Copy link
Author

MaxRink commented Oct 6, 2021

This one is going to be quite tricky. We run ironic/inspector API as WSGI applications behind httpd. We could of course split all these, but I don't feel well running 3 (?) httpd instances just for Metal3.

We currently handle that by having ironic in cluster and tying everything together using nginx Ingress, but doing that statically in an docker environment should also be possible. You would still need a seperate instance for wsgi tho, but with less config

@dtantsur
Copy link
Member

dtantsur commented Oct 6, 2021

How exactly does it look? I see these possibilities:

  1. nginx (TLS termination) -> (uwsgi protocol) -> uwsgi (with ironic) -> ... (JSON RPC)
  2. nginx/httpd (TLS termination) -> (http) -> uwsgi/gunicorn (with ironic)/ironic-api -> ...

Do you mean option 2?

@MaxRink
Copy link
Author

MaxRink commented Oct 6, 2021

yes, we currently run option 2

@dtantsur
Copy link
Member

dtantsur commented Oct 6, 2021

@elfosardo I suspect it may cause issues for us downstream because we have neither uwsgi nor gunicorn?

@elfosardo
Copy link
Member

I just have started scratching the surface to finally split the different services in their own images, MariaDB would definitely be a good start point, the others are a bit tricky, especially the httpd service.
As @dtantsur pointed out we may have some issues downstream with actually either approaches.

@metal3-io-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@metal3-io-bot metal3-io-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 4, 2022
@elfosardo
Copy link
Member

we're currently in the process of separating mariadb #339

@elfosardo
Copy link
Member

/remove-lifecycle stale

@metal3-io-bot metal3-io-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 4, 2022
@Rozzii
Copy link
Member

Rozzii commented Feb 3, 2022

/kind design
/kind feature
/triage accepted

@metal3-io-bot metal3-io-bot added kind/design Categorizes issue or PR as related to design. kind/feature Categorizes issue or PR as related to a new feature. triage/accepted Indicates an issue is ready to be actively worked on. labels Feb 3, 2022
@metal3-io-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@metal3-io-bot metal3-io-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 4, 2022
@Rozzii
Copy link
Member

Rozzii commented May 11, 2022

/remove-lifecycle stale

@metal3-io-bot metal3-io-bot removed the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label May 11, 2022
@metal3-io-bot
Copy link
Contributor

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues will close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

/lifecycle stale

@metal3-io-bot metal3-io-bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Aug 9, 2022
@Rozzii
Copy link
Member

Rozzii commented Aug 17, 2022

/lifecycle frozen

@metal3-io-bot metal3-io-bot added lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Aug 17, 2022
elfosardo pushed a commit to elfosardo/ironic-image that referenced this issue Nov 16, 2022
OCPBUGS-2992: Don't save OS_ prefixed variables
@matthewei
Copy link

what progerss about this PR?

@Rozzii
Copy link
Member

Rozzii commented Jun 5, 2024

@matthewei this was discussed a few times, the situation is more complicated it will be affected by both what @mboukhalfa is doing in relation to metal3-io/baremetal-operator#1739 and related to the work that is being done related to the ironic-standalone-operator. So for now the AFAIK separating these images is not a priority until the way(s) of Ironic deployment are not finalized.

@matthewei
Copy link

@Rozzii Many thanks! I see.

@Rozzii Rozzii moved this to Backlog in Metal3 - Roadmap Jun 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/design Categorizes issue or PR as related to design. kind/feature Categorizes issue or PR as related to a new feature. lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness. triage/accepted Indicates an issue is ready to be actively worked on.
Projects
Status: Backlog
Development

No branches or pull requests

6 participants