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

Create a new guide for provisioning virtual machines (2 of 3) #3608

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

Lennonka
Copy link
Contributor

@Lennonka Lennonka commented Jan 23, 2025

What changes are you introducing?

Splitting Provisioning hosts into 3 new guides:

  1. Provisioning machines by using an installer - includes network boot and boot disks, which are both installer-based provisioning, plus Discovery, which also uses network boot
  2. Provisioning virtual machines - includes virtualization providers, image-based provisioning, and directives for installer-based provisioning if available <--- We are here.
  3. Provisioning cloud instances - includes cloud infrastructure providers and image-based provisioning only

Why are you introducing these changes? (Explanation, links to references, issues, etc.)

To mitigate pain points identified in SAT-26089 comments (public).

Anything else to add? (Considerations, potential downsides, alternative solutions you have explored, etc.)

  • Provisioning hosts will be destroyed after all 3 guides from above will have been created.
  • Currently, I am only modifying the structure. Further, detailed improvements will be done in subsequent PRs. Therefore, the new guide is terminologically inconsistent.
    Reviewers, please, focus on the title and heading structure in this PR. Using preview first is highly recommended.
  • May require updates of documentation links in the web UI.

Checklists

  • I am okay with my commits getting squashed when you merge this PR.
  • I am familiar with the contributing guidelines.

Please cherry-pick my commits into: N/A

@Lennonka Lennonka added Needs tech review Requires a review from the technical perspective Needs style review Requires a review from docs style/grammar perspective labels Jan 23, 2025
Copy link

github-actions bot commented Jan 23, 2025

The PR preview for f570995 is available at theforeman-foreman-documentation-preview-pr-3608.surge.sh

The following output files are affected by this PR:

show diff

show diff as HTML

<productnumber>{ProjectVersion}</productnumber>
<abstract>
<para>
TODO
Copy link
Contributor Author

@Lennonka Lennonka Jan 23, 2025

Choose a reason for hiding this comment

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

Note to self: TODO

"Overture is composed last."

Copy link
Contributor

@maximiliankolb maximiliankolb left a comment

Choose a reason for hiding this comment

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

Thanks for your effort Lena! Diff looks very reasonable to me but tech ACK is appreciated.

Comment on lines +5 to +8

= {ProvisioningVirtualDocTitle}

// This guide is not ready for stable releases
Copy link
Contributor

Choose a reason for hiding this comment

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

question: Do you have reasons to believe that the guide would not work for unstable and/or foreman-el/foreman-deb?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

It probably should work for all builds, since images are not part of Katello. However, right now I'm not sure it works at all and I would prefer to revisit this question later :))

Copy link
Contributor

Choose a reason for hiding this comment

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

I vote for making this guide "working" for all stable releases. I'll keep it in mind during the review

@Lennonka Lennonka marked this pull request as draft January 24, 2025 01:10
Copy link
Contributor Author

@Lennonka Lennonka left a comment

Choose a reason for hiding this comment

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

@stejskalleos I've got some questions.

Comment on lines +3 to +5
ifndef::provisioning-virtual[]
include::modules/proc_configuring-the-security-token-validity-duration.adoc[leveloffset=+1]
endif::[]
Copy link
Contributor Author

Choose a reason for hiding this comment

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

@stejskalleos The security token is not relevant for image-based provisioning, correct?

Copy link
Contributor

Choose a reason for hiding this comment

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

It is.
The machine will still ask Foreman to generate the Kickstart default template.

  • Disabling tokens in the settings will remove the requirement though. To generate the template, you must ensure the host can be authenticated in Foreman. Usually, this is done by MAC / IP.
  • If the image already contains generated kickstart, you don't have to call Foreman for the generated template; you don't need the token.
  • Otherwise you need it.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@stejskalleos What exactly are the networking requirements for image-based provisioning?

I thought that DHCP wasn't required, but the Prerequisites for image-based provisioning say that it is.

They still need at least one domain and one subnet, right?

Copy link
Contributor

Choose a reason for hiding this comment

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

What exactly are the networking requirements

That's the thing, there are no exact requirements.
I'll describe it as best I can.

DHCP is always required. The host must have an IP address valid for its subnet and communication in the subnet.

Now, in Foreman, we have the terms managed and unmanaged DHCP, which, as far as I know, we came up with, rather than being an official tech buzzword.

  • Managed DHCP—Smart Proxy can add/update/remove DHCP records and leases and point the host to the bootloader file and boot configuration files. From the config files, it will get the path to the kernel and the init ramdisk and load them.

  • Unmanaged DHCP - Smart Proxy cannot do the stuff above, but that doesn't mean the host cannot obtain an IP from the DHCP.

In one sentence: The difference is whether or not the IP was assigned to the host by our smart-proxy, but the DHCP is still there.

So I would say that managed DHCP is preferred, but it is not required.

@Lennonka
Copy link
Contributor Author

@stejskalleos Please, answer the questions above and check the TOC of the guide.

@stejskalleos
Copy link
Contributor

TOC of the guide

What's TOC?

Comment on lines +5 to +8

= {ProvisioningVirtualDocTitle}

// This guide is not ready for stable releases
Copy link
Contributor

Choose a reason for hiding this comment

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

I vote for making this guide "working" for all stable releases. I'll keep it in mind during the review

@@ -13,8 +13,12 @@ A default installation of {ProjectName} contains three predefined profiles:

You can apply compute profiles to all supported compute resources:

ifdef::provisioning,provisioning-cloud[]
Copy link
Contributor

Choose a reason for hiding this comment

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

Are these flags used during the documentation generation?
What's the reasoning for not including these blocks in the end docs?

@@ -27,6 +27,4 @@ include::snip_prerequisites-common-compute-resource.adoc[]
Ensure that no other DHCP services run on this network to avoid conflicts with {SmartProxyServer}.
For more information about network service configuration for {SmartProxyServers}, see {ProvisioningDocURL}preparing-networking[Preparing networking] in _{ProvisioningDocTitle}_.

.Additional resources
* For a list of permissions a non-admin user requires to provision hosts, see xref:permissions-required-to-provision-hosts_provisioning[].
Copy link
Contributor

Choose a reason for hiding this comment

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

Note to myself: snip_prerequisites-common-compute-resource.adoc

@pr-processor pr-processor bot added the Waiting on contributor Requires an action from the author label Apr 1, 2025
@aneta-petrova
Copy link
Member

What's TOC?

Table of contents :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs style review Requires a review from docs style/grammar perspective Needs tech review Requires a review from the technical perspective Waiting on contributor Requires an action from the author
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants