Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ include::modules/installation-configuration-parameters.adoc[leveloffset=+1]
[role="_additional-resources"]
.Additional resources
* xref:../../installing/installing_bare_metal_ipi/ipi-install-installation-workflow.adoc#bmc-addressing_ipi-install-installation-workflow[BMC addressing]
* xref:../../installing/installing_vsphere/ipi/installing-vsphere-installer-provisioned-customizations.adoc#configuring-vsphere-regions-zones_installing-vsphere-installer-provisioned-customizations[Configuring regions and zones for a VMware vCenter]

include::modules/agent-configuration-parameters.adoc[leveloffset=+1]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ include::modules/installing-ocp-agent-download.adoc[leveloffset=+2]
// Creating the preferred configuration inputs
include::modules/installing-ocp-agent-inputs.adoc[leveloffset=+2]

[role="_additional-resources"]
.Additional resources
* xref:../../installing/installing_vsphere/ipi/installing-vsphere-installer-provisioned-customizations.adoc#configuring-vsphere-regions-zones_installing-vsphere-installer-provisioned-customizations[Configuring regions and zones for a VMware vCenter]

[id="installing-ocp-agent-opt-manifests_{context}"]
=== Optional: Creating additional manifest files

Expand Down
143 changes: 140 additions & 3 deletions modules/installation-configuration-parameters.adoc
Copy link
Contributor Author

@skopacz1 skopacz1 Jan 19, 2024

Choose a reason for hiding this comment

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

I used the following logic to selectively include existing vSphere config parameters in the Agent docs:

  • The entire vSphere section, which previously was included only in the vSphere configuration page, has been modified to be included in both the vSphere and Agent configuration pages
  • Within that section of vSphere content, I used vSphere-only conditionals to exclude parameters that only belong in the vSphere page and not the Agent page.
  • Within that section of vSphere content, I used Agent-only conditionals to exclude parameters that only belong in the Agent page and cannot yet be put in the vSphere page (due to time constraints for reviewing before the 4.15 GA deadline).

Original file line number Diff line number Diff line change
Expand Up @@ -2603,17 +2603,24 @@ Valid names include:
--
endif::ibm-cloud[]

ifdef::vsphere[]

ifdef::agent,vsphere[]
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm not sure I understand why you opened this ifdef here and then also on line 2616. I think my question is do you need line 2616? Just checking/learning: is it because you close this opening one down on line 2958?

Copy link
Contributor Author

@skopacz1 skopacz1 Feb 15, 2024

Choose a reason for hiding this comment

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

So technically this ifdef and the one on line 2616 are different because they check for slightly different conditions. This ifdef, which is closed on line 2958, basically says "Rule # 1: all of the content within these lines can be included if agent OR vsphere is true, unless there's an exception".

The ifdef on line 2616 (which closes on line 2622) is basically treated like an exception to that agent OR vsphere condition, because it ONLY includes content for agent. It's basically saying "here's an exception to rule # 1, the content from lines 2616 to 2622 can be included ONLY if agent is true, but can't be included in vsphere". Let me know if that makes sense, or if you'd like me to explain further.

TLDR the ifdef on line 2606 makes a general rule and the ifdefs like the ones on lines 2616 and 2623 make exceptions to that rule in order to be more specific

Copy link
Contributor

Choose a reason for hiding this comment

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

I'm picking it up now. There just may be hope for me yet 😄 . Merging

[id="installation-configuration-parameters-additional-vsphere_{context}"]
== Additional VMware vSphere configuration parameters

Additional VMware vSphere configuration parameters are described in the following table:

.Additional VMware vSphere cluster parameters
[cols=".^2l,.^4,.^2",options="header,word-wrap",subs="+quotes,+attributes"]
[cols=".^2l,.^3a,.^3",options="header,word-wrap",subs="+quotes,+attributes"]
|====
|Parameter|Description|Values
ifdef::agent[]

|platform:
vsphere:
| Describes your account on the cloud platform that hosts your cluster. You can use the parameter to customize the platform. If you provide additional configuration settings for compute and control plane machines in the machine pool, the parameter is not required. You can only specify one vCenter server for your {product-title} cluster.
|A dictionary of vSphere configuration objects
endif::agent[]
ifdef::vsphere[]

|platform:
vsphere:
Expand All @@ -2634,6 +2641,29 @@ Additional VMware vSphere configuration parameters are described in the followin
failureDomains:
|Establishes the relationships between a region and zone. You define a failure domain by using vCenter objects, such as a `datastore` object. A failure domain defines the vCenter location for {product-title} cluster nodes.
|String
endif::vsphere[]
ifdef::agent[]

|platform:
vsphere:
failureDomains:
|Establishes the relationships between a region and zone. You define a failure domain by using vCenter objects, such as a `datastore` object. A failure domain defines the vCenter location for {product-title} cluster nodes.
|An array of failure domain configuration objects.

|platform:
vsphere:
failureDomains:
name:
|The name of the failure domain.
|String

|platform:
vsphere:
failureDomains:
server:
|The fully qualified domain name (FQDN) of the vCenter server.
|An FQDN such as example.com
endif::agent[]

|platform:
vsphere:
Expand All @@ -2642,6 +2672,65 @@ Additional VMware vSphere configuration parameters are described in the followin
networks:
|Lists any network in the vCenter instance that contains the virtual IP addresses and DNS records that you configured.
|String
ifdef::agent[]

|platform:
vsphere:
failureDomains:
topology:
computeCluster:
|The path to the vSphere compute cluster.
|String

|platform:
vsphere:
failureDomains:
topology:
datacenter:
|Lists and defines the datacenters where {product-title} virtual machines (VMs) operate.
The list of datacenters must match the list of datacenters specified in the `vcenters` field.
|String

|platform:
vsphere:
failureDomains:
topology:
datastore:
|The path to the vSphere datastore that holds virtual machine files, templates, and ISO images.
[IMPORTANT]
====
You can specify the path of any datastore that exists in a datastore cluster.
By default, Storage vMotion is automatically enabled for a datastore cluster.
Red{nbsp}Hat does not support Storage vMotion, so you must disable Storage vMotion to avoid data loss issues for your {product-title} cluster.

If you must specify VMs across multiple datastores, use a `datastore` object to specify a failure domain in your cluster's `install-config.yaml` configuration file.
For more information, see "VMware vSphere region and zone enablement".
====
|String

|platform:
vsphere:
failureDomains:
topology:
resourcePool:
// When this content is added to vSphere docs, the line below should likely say "where the installation program creates the virtual machines".
|Optional: The absolute path of an existing resource pool where the user creates the virtual machines, for example, `/<datacenter_name>/host/<cluster_name>/Resources/<resource_pool_name>/<optional_nested_resource_pool_name>`.
// Commenting out the line below because it doesn't apply to Agent, but it may be needed when this content is brought into the regular vSphere docs.
// If you do not specify a value, resources are installed in the root of the cluster, for example `/example_datacenter/host/example_cluster/Resources`.
|String

|platform:
vsphere:
failureDomains:
topology:
folder:
// When this content is added to vSphere docs, the line below should likely say "where the installation program creates the virtual machines", and should be Optional.
|The absolute path of an existing folder where the user creates the virtual machines, for example, `/<datacenter_name>/vm/<folder_name>/<subfolder_name>`.
// Commenting out the two lines below because they don't apply to Agent, but they may be needed when this content is brought into the regular vSphere docs.
// If you do not provide this value, the installation program creates a top-level folder in the datacenter virtual machine folder that is named with the infrastructure ID.
// If you are providing the infrastructure for the cluster and you do not want to use the default `StorageClass` object, named `thin`, you can omit the `folder` parameter from the `install-config.yaml` file.
|String
endif::agent[]

|platform:
vsphere:
Expand All @@ -2663,6 +2752,7 @@ Additional VMware vSphere configuration parameters are described in the followin
template:
|Specify the absolute path to a pre-existing {op-system-first} image template or virtual machine. The installation program can use the image template or virtual machine to quickly install {op-system} on vSphere hosts. Consider using this parameter as an alternative to uploading an {op-system} image on vSphere hosts. The parameter is available for use only on installer-provisioned infrastructure.
|String
ifdef::vsphere[]

|platform:
vsphere:
Expand All @@ -2682,13 +2772,53 @@ Additional VMware vSphere configuration parameters are described in the followin
vcenters:
|Lists any fully-qualified hostname or IP address of a vCenter server.
|String
endif::vsphere[]
ifdef::agent[]

|platform:
vsphere:
vcenters:
|Configures the connection details so that services can communicate with vCenter.
Currently, only a single vCenter is supported.
|An array of vCenter configuration objects.
endif::agent[]

|platform:
vsphere:
vcenters:
datacenters:
|Lists and defines the datacenters where {product-title} virtual machines (VMs) operate. The list of datacenters must match the list of datacenters specified in the `failureDomains` field.
|String
ifdef::agent[]

|platform:
vsphere:
vcenters:
password:
Copy link
Contributor

Choose a reason for hiding this comment

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

each vCenter is a separate entry in the vcenters slice. this allows multiple vCenters to be defined potentially(though its not supported at the moment).

Suggested change
password:
- password: <pw>
port: 443
server: <vcenter fqdn>

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That makes total sense. Each param is depicted this way because the install writers changed the old config format in the reference tables (e.g. platform.vsphere.vcenters.password) to this newer one that saves horizontal space. We're relying on the description/values column to convey things like what's optional and what needs to go together as a set.

For example, for the compute section of the install-config, instead of documenting architecture, name, platform, etc like this, we rely on the value field of compute.architecture to describe the structure: "Array of MachinePool objects"

|The password associated with the vSphere user.
|String

|platform:
vsphere:
vcenters:
port:
|The port number used to communicate with the vCenter server.
|Integer

|platform:
vsphere:
vcenters:
server:
|The fully qualified host name (FQHN) or IP address of the vCenter server.
|String

|platform:
vsphere:
vcenters:
user:
|The username associated with the vSphere user.
|String
endif::agent[]
|====

[id="deprecated-parameters-vsphere_{context}"]
Expand All @@ -2702,6 +2832,7 @@ The following table lists each deprecated vSphere configuration parameter:
[cols=".^2l,.^4,.^2",options="header,word-wrap",subs="+quotes,+attributes"]
|====
|Parameter|Description|Values
ifdef::vsphere[]

|platform:
vsphere:
Expand All @@ -2710,6 +2841,7 @@ The following table lists each deprecated vSphere configuration parameter:

*Note:* In {product-title} 4.12 and later, the `apiVIP` configuration setting is deprecated. Instead, use a `List` format to enter a value in the `apiVIPs` configuration setting.
a|An IP address, for example `128.0.0.1`.
endif::vsphere[]

|platform:
vsphere:
Expand All @@ -2735,6 +2867,8 @@ a|An IP address, for example `128.0.0.1`.
|Optional. The absolute path of an existing folder where the installation program creates the virtual machines. If you do not provide this value, the installation program creates a folder that is named with the infrastructure ID in the data center virtual machine folder.
|String, for example, `/<datacenter_name>/vm/<folder_name>/<subfolder_name>`.

ifdef::vsphere[]

|platform:
vsphere:
ingressVIP:
Expand All @@ -2748,6 +2882,7 @@ a|An IP address, for example `128.0.0.1`.
network:
|The network in the vCenter instance that contains the virtual IP addresses and DNS records that you configured.
|String
endif::vsphere[]

|platform:
vsphere:
Expand Down Expand Up @@ -2777,6 +2912,7 @@ in vSphere.
|String
|====

ifdef::vsphere[]
[id="installation-configuration-parameters-optional-vsphere_{context}"]
== Optional VMware vSphere machine pool configuration parameters

Expand Down Expand Up @@ -2819,6 +2955,7 @@ Optional VMware vSphere machine pool configuration parameters are described in t
|Integer
|====
endif::vsphere[]
endif::agent,vsphere[]

ifdef::ash[]
[id="installation-configuration-parameters-additional-azure-stack-hub_{context}"]
Expand Down