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

Add diagram of installer-based provisioning with HTTP boot #3305

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions guides/image-sources/prov-create-host-http.iuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
User -> Foreman : Create host
Foreman -> Proxy : Request a free IP address
Proxy -> DHCP : Search for a free IP address in DHCP
DHCP -> Proxy : Return the free IP address
Proxy -> Foreman : Pass the free IP address
group Templates [*PXE* installer boot]
Foreman -> Proxy : Render boot-loader configuration files
end
Proxy -> Proxy : Deploy boot-loader configuration files\nto ""/var/lib/tftpboot""
Foreman -> Proxy : Command to download installer kernel\nand initial RAM disk
Proxy -> Proxy : Download kernel and initial RAM disk
Foreman -> Proxy : Request DHCP reservation
Proxy -> DHCP : Create DHCP reservation
Foreman -> Proxy : Create DNS records
Proxy -> DNS : Forward DNS records
Proxy -> Foreman : Report status of TFTP, DHCP & DNS
Lennonka marked this conversation as resolved.
Show resolved Hide resolved
Foreman -> User : Host is created\n(build mode enabled)
4 changes: 4 additions & 0 deletions guides/image-sources/prov-first-local-boot-http.iuml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Host -> DHCP : Request reserved IP address and DHCP options
Host -> Proxy : Download boot loader
Proxy -> Host : Provide MAC-based configuration for boot loader
Host -> Host : Boot from HDD
59 changes: 59 additions & 0 deletions guides/image-sources/provisioning-installer-httpboot.plantuml
Lennonka marked this conversation as resolved.
Show resolved Hide resolved
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
@startuml

!include foreman.pstyle

title Installer-based provisioning with UEFI HTTP boot on bare metal

actor User
participant "Provisioned\nHost" as Host
participant "Foreman" as Foreman
participant "Foreman\nProxy" as Proxy
Lennonka marked this conversation as resolved.
Show resolved Hide resolved
participant DHCP
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In the #3304 PR, there is a TFTP participant. Should we add the participant HTTP here as well?

Copy link
Contributor Author

@Lennonka Lennonka Nov 4, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@stejskalleos I believe that we discussed last week that we will not introduce an HTTP participant but treat the Foreman Proxy as the server that provides HTTP.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK.

participant DNS
!if ($puppet)
participant "Puppet\nserver" as Puppet
!endif

note over Host : Powered off

== Create host in Foreman ==

!include prov-create-host-http.iuml

== Boot into OS installer ==

User -> Host : Power on the machine
Host -> DHCP : Request reserved IP and DHCP options
Host -> Proxy : Download boot loader
Host -> Host : Load the boot loader
Host -> Proxy : Get MAC-based configuration for boot loader
Host -> Proxy : Download installer kernel and init RAM disk
Host -> Host : Load the installer
Host -> Proxy : Request installer configuration
group Template [Provision]
Proxy -> Proxy : Render installer configuration
end
Proxy -> Host : Provide installer configuration
!include prov-installation-media.iuml
note over Host : Operating system installed
!include prov-initial-configuration.iuml
Host -> Foreman : Call home\n(disables build mode)
group Templates [*PXE* local boot]
Foreman -> Proxy : Render boot-loader configuration files
end
Proxy -> Proxy : Deploy boot-loader configuration files\nto ""/var/lib/tftpboot""
Host -> Host : Reboot

== First local boot ==

!include prov-first-local-boot-http.iuml

!if ($puppet)
== First Puppet run ==

!include puppet-run.iuml
!endif

note over Host : In operation

@enduml