-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add diagrams of provisioning methods (#3069)
- Loading branch information
Showing
22 changed files
with
462 additions
and
16 deletions.
There are no files selected for viewing
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
' Foreman style for PlantUML diagrams | ||
' This style was created for sequence diagrams and may be incomplete. | ||
|
||
skinparam RoundCorner 8 | ||
skinparam Shadowing false | ||
|
||
' #ffcc32 Foreman yellow | ||
' #025d8c Foreman blue | ||
|
||
skinparam sequence { | ||
ArrowColor #025d8c | ||
LifeLineBorderColor #ecf4f8 | ||
LifeLineBorderThickness 32 | ||
DividerBorderColor #025d8c | ||
DividerFontColor #025d8c | ||
group { | ||
TitleFontColor #025d8c | ||
BorderColor #d2e4ed | ||
FontColor #025d8c | ||
} | ||
groupHeader { | ||
BackgroundColor #d2e4ed | ||
FontColor #025d8c | ||
} | ||
} | ||
|
||
skinparam Actor { | ||
BackgroundColor #025d8c | ||
BorderColor #025d8c | ||
FontColor #025d8c | ||
} | ||
|
||
skinparam Participant { | ||
BackgroundColor #025d8c | ||
BorderColor #025d8c | ||
FontColor White | ||
} | ||
|
||
skinparam Note { | ||
BackgroundColor #d2e4ed | ||
BorderColor #025d8c | ||
FontColor #025d8c | ||
} | ||
|
||
' Puppet enabled=1, disabled=0 | ||
!$puppet = 0 | ||
|
||
autonumber |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
User -> Foreman : clicks **Create Host** | ||
Foreman -> Proxy : requests free IP address | ||
Proxy -> DHCP : reads DHCP cofiguration | ||
note over Foreman : pings IP address | ||
User -> Foreman : submits the **Create host** form | ||
group Templates [*PXE* installer boot] | ||
Foreman -> Proxy : renders bootloader configuration files | ||
end | ||
Proxy -> TFTP : deploys bootloader configuration files | ||
Foreman -> Proxy : commands to download installation media | ||
note over Proxy : downloads installation media | ||
Foreman -> Proxy : creates DHCP reservation | ||
Proxy -> DHCP : forwards DHCP reservation | ||
Foreman -> Proxy : creates DNS records | ||
Proxy -> DNS : forwards DNS records | ||
note over Foreman : host is created\n(build mode enabled) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
!if ($networkboot) | ||
Host -> DHCP : requests the reserved IP | ||
!endif | ||
Host -> Host : boots from HDD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
Host -> DHCP : requests the reserved IP and DHCP options | ||
Host -> TFTP : downloads bootloader | ||
Host -> TFTP : gets MAC-based bootloader config | ||
Host -> Host : config tells bootloader to boot from HDD | ||
Host -> Host : boots from HDD |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
!if ($puppet) | ||
opt when Puppet enabled | ||
Host -> Puppet : sends CSR | ||
Puppet -> Host : sends certificate (if allowed to) | ||
end | ||
!else | ||
note over Host : initial host configuration\n- remote execution,\n- signs Puppet client cert,\n- runs Ansible roles,\n- etc. | ||
!endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
loop | ||
Host -> Foreman : requests installation media | ||
Foreman -> Proxy : requests installation media | ||
Proxy -> Foreman : provides installation media | ||
Foreman -> Host : provides installation media | ||
end |
50 changes: 50 additions & 0 deletions
50
guides/image-sources/provisioning-image-cloudinit.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
@startuml | ||
|
||
!include foreman.pstyle | ||
|
||
title Image-based provisioning with cloud-init configuration | ||
|
||
actor User | ||
participant "Provisioned\nInstance" as Host | ||
participant "Foreman" as Foreman | ||
participant "Foreman\nProxy" as Proxy | ||
participant "Infrastructure\nCloud" as Cloud | ||
participant DNS | ||
!if ($puppet) | ||
participant "Puppet\nserver" as Puppet | ||
!endif | ||
|
||
note over Foreman : has an image\nwith the *User Data* flag | ||
|
||
== Create host in Foreman == | ||
|
||
User -> Foreman : clicks **Create Host** | ||
User -> Foreman : selects cloud resource,\nthe image and submits | ||
group Template [cloud-init] | ||
Foreman -> Proxy : renders the cloud-init script | ||
end | ||
Foreman -> Cloud : creates new instance\nwith cloud-init info | ||
Cloud -> Foreman : reports IP address | ||
Foreman -> Proxy : creates DNS records | ||
Proxy -> DNS : forwards DNS records | ||
!if ($puppet) | ||
Foreman -> Proxy : creates Puppet sign request (autosign enabled) | ||
Proxy -> Puppet : forwards Puppet sign request | ||
!endif | ||
Foreman -> Cloud : starts the instance | ||
note over Host : boots up | ||
|
||
== Cloud-init script == | ||
|
||
!include prov-initial-configuration.iuml | ||
Host -> Foreman : calls home\n(disables build mode) | ||
|
||
!if ($puppet) | ||
== First Puppet run == | ||
|
||
!include puppet-run.iuml | ||
!endif | ||
|
||
note over Host : in operation | ||
|
||
@enduml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
@startuml | ||
|
||
!include foreman.pstyle | ||
|
||
title Image-based provisioning with Finish script configuration | ||
|
||
actor User | ||
participant "Provisioned\nInstance" as Host | ||
participant "Foreman" as Foreman | ||
participant "Foreman\nProxy" as Proxy | ||
participant "Infrastructure\nCloud" as Cloud | ||
participant DNS | ||
!if ($puppet) | ||
participant "Puppet\nserver" as Puppet | ||
!endif | ||
|
||
note over Foreman : has an image with credentials\ndefined in compute resource | ||
|
||
== Create host in Foreman == | ||
|
||
User -> Foreman : clicks on **Create Host** | ||
User -> Foreman : selects cloud resource, the image and submits | ||
group Template [Finish] | ||
Foreman -> Proxy : renders the Finish script | ||
end | ||
Foreman -> Cloud : creates new instance | ||
Cloud -> Foreman : reports IP address | ||
Foreman -> Proxy : creates DNS records | ||
Proxy -> DNS : forwards DNS records | ||
Foreman -> Cloud : starts the instance | ||
note over Host : boots up | ||
Foreman -> Host : executes Finish script via SSH | ||
|
||
== Finish script == | ||
|
||
!include prov-initial-configuration.iuml | ||
Host -> Foreman : calls home\n(disables build mode) | ||
|
||
!if ($puppet) | ||
== First Puppet run == | ||
|
||
!include puppet-run.iuml | ||
!endif | ||
|
||
note over Host : in operation | ||
|
||
@enduml |
66 changes: 66 additions & 0 deletions
66
guides/image-sources/provisioning-installer-bootdisk-fullhost.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
@startuml | ||
|
||
!include foreman.pstyle | ||
!$networkboot = 0 | ||
|
||
title Installer-based provisioning with full-host bootdisk | ||
|
||
actor User | ||
participant "Provisioned\nHost" as Host | ||
participant "Foreman" as Foreman | ||
participant "Foreman\nProxy" as Proxy | ||
'participant "Pulp\n(Katello)" as Pulp | ||
'participant TFTP | ||
'participant DHCP | ||
participant DNS | ||
!if ($puppet) | ||
participant "Puppet\nserver" as Puppet | ||
!endif | ||
|
||
note over Host : powered off | ||
|
||
== Create host in Foreman == | ||
|
||
User -> Foreman : clicks **Create Host** | ||
User -> Foreman : assigns static IP address | ||
User -> Foreman : submits the **Create host** form | ||
group Templates [*PXE* installer boot] | ||
Foreman -> Proxy : renders bootloader configuration files | ||
end | ||
Proxy -> Proxy : deploys bootloader configuration files | ||
Foreman -> Proxy : commands to download installation media | ||
note over Proxy : downloads installation media | ||
Foreman -> Proxy : creates DNS records | ||
Proxy -> DNS : forwards DNS records | ||
note over Foreman : host is created\n(build mode enabled) | ||
|
||
User -> Foreman : downloads the bootdisk ISO of the host | ||
note over User : writes the bootdisk ISO\nto a USB/CD/DVD drive | ||
|
||
== Boot into OS installer == | ||
|
||
User -> Host : configures the machine to boot\nfrom the USB/CD/DVD drive | ||
User -> Host : powers on the machine | ||
Host -> Host : uses IP from the bootdisk | ||
note over Host : boots from the USB/CD/DVD drive | ||
note over Host : loads OS installer | ||
User -> Host : eliminates the USB/CD/DVD drive\n(too soon?) | ||
!include prov-installation-media.iuml | ||
note over Host : OS is installed | ||
!include prov-initial-configuration.iuml | ||
Host -> Foreman : calls home\n(disables build mode) | ||
note over Host : reboots | ||
|
||
== First local boot == | ||
|
||
!include prov-first-local-boot-hdd.iuml | ||
|
||
!if ($puppet) | ||
== First Puppet run == | ||
|
||
!include puppet-run.iuml | ||
!endif | ||
|
||
note over Host : in operation | ||
|
||
@enduml |
60 changes: 60 additions & 0 deletions
60
guides/image-sources/provisioning-installer-bootdisk-subnet.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
@startuml | ||
|
||
!include foreman.pstyle | ||
!$networkboot = 1 | ||
|
||
title Installer-based provisioning with subnet bootdisk | ||
|
||
actor User | ||
participant "Provisioned\nHost" as Host | ||
participant "Foreman" as Foreman | ||
participant "Foreman\nProxy" as Proxy | ||
'participant "Pulp\n(Katello)" as Pulp | ||
'participant TFTP | ||
participant DHCP | ||
participant DNS | ||
!if ($puppet) | ||
participant "Puppet\nserver" as Puppet | ||
!endif | ||
|
||
note over Host : powered off | ||
|
||
User -> Foreman : downloads the bootdisk of the subnet | ||
note over User : writes the bootdisk\nto a USB/CD/DVD drive | ||
|
||
== Boot into OS installer == | ||
|
||
User -> Host : configures the machine to boot\nfrom the USB/CD/DVD drive | ||
User -> Host : powers on the machine | ||
Host -> DHCP : requests the reserved IP | ||
note over Host : boots from the USB/CD/DVD drive | ||
note over Host : bootloader loads | ||
User -> Host : eliminates the USB/CD/DVD drive\n(too soon?) | ||
Host -> Proxy : gets MAC-based bootloader config | ||
Host -> Proxy : downloads OS installer kernel\nand initial RAM disk | ||
note over Host : OS installer loads | ||
Host -> Proxy : requests installer configuration | ||
group Template [Provision] | ||
Proxy -> Proxy : renders installer configuration | ||
end | ||
Proxy -> Host : gets installer configuration | ||
!include prov-installation-media.iuml | ||
note over Host : OS is installed | ||
!include prov-initial-configuration.iuml | ||
Host -> Foreman : calls home\n(disables build mode) | ||
|
||
note over Host : reboots | ||
|
||
== First local boot == | ||
|
||
!include prov-first-local-boot-hdd.iuml | ||
|
||
!if ($puppet) | ||
== First Puppet run == | ||
|
||
!include puppet-run.iuml | ||
!endif | ||
|
||
note over Host : in operation | ||
|
||
@enduml |
61 changes: 61 additions & 0 deletions
61
guides/image-sources/provisioning-installer-httpboot.plantuml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
@startuml | ||
|
||
!include foreman.pstyle | ||
|
||
title Installer-based provisioning with HTTP boot | ||
|
||
actor User | ||
participant "Provisioned\nHost" as Host | ||
participant "Foreman" as Foreman | ||
participant "Foreman\nProxy" as Proxy | ||
'participant "Pulp\n(Katello)" as Pulp | ||
participant TFTP | ||
participant DHCP | ||
participant DNS | ||
!if ($puppet) | ||
participant "Puppet\nserver" as Puppet | ||
!endif | ||
|
||
note over Host : powered off | ||
|
||
== Create host in Foreman == | ||
|
||
!include prov-create-host-pxe.iuml | ||
|
||
== Boot into OS installer == | ||
|
||
User -> Host : powers on the machine | ||
Host -> DHCP : requests the reserved IP and DHCP options | ||
Host -> Proxy : downloads bootloader | ||
note over Host : bootloader loads | ||
Host -> Proxy : gets MAC-based bootloader config | ||
Host -> Proxy : downloads OS installer kernel\nand initial RAM disk | ||
note over Host : OS installer loads | ||
Host -> Proxy : requests installer configuration | ||
group Template [Provision] | ||
Proxy -> Proxy : renders installer configuration | ||
end | ||
Proxy -> Host : receives installer configuration | ||
!include prov-installation-media.iuml | ||
note over Host : OS is installed | ||
!include prov-initial-configuration.iuml | ||
Host -> Foreman : calls home\n(disables build mode) | ||
group Templates [*PXE* local boot] | ||
Foreman -> Proxy : renders bootloader configuration files | ||
end | ||
Proxy -> TFTP : deploys bootloader configuration files | ||
note over Host : reboots | ||
|
||
== First local boot == | ||
|
||
!include prov-first-local-boot-pxe.iuml | ||
|
||
!if ($puppet) | ||
== First Puppet run == | ||
|
||
!include puppet-run.iuml | ||
!endif | ||
|
||
note over Host : in operation | ||
|
||
@enduml |
Oops, something went wrong.