mirror of
https://github.com/openshift/installer.git
synced 2026-02-06 00:48:45 +01:00
docs/user: Standardize install-config property documentation
This is a bit more accessible than pointing folks at Godocs, since it
allows us to focus on the YAML property names (while Godocs
understandably focus on Go property names) and YAML renderings. Also
break up our old "one big example" install-config.yaml into a minimal
per-platform example and a series of small extentions excercising
groups of properties.
The vSphere docs are based heavily on [1].
Also drop proxy.md. It was added in e7edbf71fd (Add proxy
configuration to bootstrap node, 2019-06-24, #1832), but:
* Proxy testing and Squid configuration information belongs in
openshift/release, not in the installer repository.
* docs/user/customization.md now contains a more complete proxy-config
fragment.
OpenStack computeFlavor precedence is based on [2].
[1]: https://github.com/openshift/openshift-docs/blob/enterprise-4.2/modules/installation-vsphere-config-yaml.adoc
Last touched by commit openshift/openshift-docs@25afc7626d , 2019-08-19
[2]: https://github.com/openshift/installer/pull/2162#discussion_r322410878
This commit is contained in:
@@ -1,51 +0,0 @@
|
||||
### Proxy Testing
|
||||
|
||||
This will create an extremely basic configuration of squid to support
|
||||
the testing of authenticated proxy with `openshift-install`.
|
||||
|
||||
NOTE: Make sure TCP/3128 is open
|
||||
|
||||
|
||||
- Create directories and configuration files
|
||||
```
|
||||
mkdir -p /srv/squid/{etc,cache}
|
||||
htpasswd -c /srv/squid/etc/passwords <username>
|
||||
|
||||
cat << EOF > /srv/squid/etc/squid.conf
|
||||
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/passwords
|
||||
auth_param basic realm proxy
|
||||
acl authenticated proxy_auth REQUIRED
|
||||
http_access allow authenticated
|
||||
http_port 3128
|
||||
cache_dir ufs /var/spool/squid 100 16 256
|
||||
coredump_dir /var/spool/squid
|
||||
EOF
|
||||
|
||||
chcon -Rt svirt_sandbox_file_t /srv/squid/
|
||||
```
|
||||
|
||||
- Start container
|
||||
```
|
||||
URL=docker.io/datadog/squid:latest
|
||||
SQUID_CACHE_PATH=/srv/squid/cache
|
||||
SQUID_ETC_PATH=/srv/squid/etc
|
||||
|
||||
podman pull ${URL}
|
||||
podman rm -f squid
|
||||
|
||||
podman run --name squid -d -p 3128:3128 \
|
||||
--volume ${SQUID_CACHE_PATH}:/var/spool/squid:Z \
|
||||
--volume ${SQUID_ETC_PATH}:/etc/squid:Z \
|
||||
${URL}
|
||||
```
|
||||
|
||||
- install-config.yaml snipit
|
||||
|
||||
```yaml
|
||||
---
|
||||
apiVersion: v1
|
||||
baseDomain: devcluster.openshift.com
|
||||
proxy:
|
||||
httpsProxy: "http://username:password@proxy:port"
|
||||
httpProxy: "http://username:password@proxy:port"
|
||||
```
|
||||
@@ -1,18 +1,50 @@
|
||||
# AWS Platform Customization
|
||||
|
||||
The following options are available when using AWS:
|
||||
Beyond the [platform-agnostic `install-config.yaml` properties](../customization.md#platform-customization), the installer supports additional, AWS-specific properties.
|
||||
|
||||
- `machines.platform.aws.rootVolume.iops` - the reserved IOPS of the root volume
|
||||
- `machines.platform.aws.rootVolume.size` - the size (in GiB) of the root volume
|
||||
- `machines.platform.aws.rootVolume.type` - the storage type of the root volume
|
||||
- `machines.platform.aws.type` - the EC2 instance type
|
||||
- `machines.platform.aws.zones` - a list of the availability zones that the installer will use when creating machines of this pool
|
||||
- `platform.aws.region` - the AWS region that the installer will use when creating resources
|
||||
- `platform.aws.userTags` - a map of keys and values that the installer will add as tags to all resources it creates
|
||||
## Cluster-scoped properties
|
||||
|
||||
* `amiID` (optional string): The AMI that should be used to boot machines for the cluster.
|
||||
If set, the AMI should belong to the same region as the cluster.
|
||||
* `region` (required string): The AWS region where the cluster will be created.
|
||||
* `userTags` (optional object): Additional keys and values that the installer will add as tags to all resources that it creates.
|
||||
Resources created by the cluster itself may not include these tags.
|
||||
* `defaultMachinePlatform` (optional object): Default [AWS-specific machine pool properties](#machine-pools) which applies to [machine pools](../customization.md#machine-pools) that do not define their own AWS-specific properties.
|
||||
|
||||
## Machine pools
|
||||
|
||||
* `rootVolume` (optional object): Defines the root volume for EC2 instances in the machine pool.
|
||||
* `iops` (optional integer): The amount of provisioned [IOPS][volume-iops].
|
||||
This is only valid for `type` `io1`.
|
||||
* `size` (optional integer): Size of the root volume in gibibytes (GiB).
|
||||
* `type` (optional string): The [type of volume][volume-type].
|
||||
* `type` (optional string): The [EC2 instance type][instance-type].
|
||||
* `zones` (optional array of strings): The availability zones used for machines in the pool.
|
||||
|
||||
## Examples
|
||||
|
||||
An example `install-config.yaml` is shown below. This configuration has been modified to show the customization that is possible via the install config.
|
||||
Some example `install-config.yaml` are shown below.
|
||||
For examples of platform-agnostic configuration fragments, see [here](../customization.md#examples).
|
||||
|
||||
### Minimal
|
||||
|
||||
An example minimal AWS install config is:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform:
|
||||
aws:
|
||||
region: us-west-2
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Custom machine pools
|
||||
|
||||
An example AWS install config with custom machine pools:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
@@ -40,20 +72,14 @@ compute:
|
||||
replicas: 5
|
||||
metadata:
|
||||
name: test-cluster
|
||||
networking:
|
||||
clusterNetwork:
|
||||
- cidr: 10.128.0.0/14
|
||||
hostPrefix: 23
|
||||
machineCIDR: 10.0.0.0/16
|
||||
serviceNetwork:
|
||||
- 172.30.0.0/16
|
||||
networkType: OpenShiftSDN
|
||||
platform:
|
||||
aws:
|
||||
region: us-west-2
|
||||
userTags:
|
||||
adminContact: jdoe
|
||||
costCenter: 7536
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
[availablity-zones]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
|
||||
[instance-type]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html
|
||||
[volume-iops]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html
|
||||
[volume-type]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html
|
||||
|
||||
@@ -1,15 +1,46 @@
|
||||
# Azure Platform Customization
|
||||
|
||||
Beyond the [platform-agnostic `install-config.yaml` properties](../customization.md#platform-customization), the installer supports additional, Azure-specific properties.
|
||||
|
||||
## Cluster-scoped properties
|
||||
|
||||
The following options are available when using Azure:
|
||||
|
||||
- `machines.platform.azure.type` - the VM instance type
|
||||
- `machines.platform.azure.osDisk.diskSizeGB` - The Azure OS disk size in Gigabytes
|
||||
- `platform.azure.region` - the Azure region (location) that the installer will use when creating resource group and resources
|
||||
- `platform.azure.baseDomainResourceGroupName` - the Azure Resource Group that has the public DNS zone for base domain
|
||||
* `region` (required string): The Azure region where the cluster will be created.
|
||||
* `baseDomainResourceGroupName` (required string): The resource group where the Azure DNS zone for the base domain is found.
|
||||
* `defaultMachinePlatform` (optional object): Default [Azure-specific machine pool properties](#machine-pools) which applies to [machine pools](../customization.md#machine-pools) that do not define their own Azure-specific properties.
|
||||
|
||||
## Machine pools
|
||||
|
||||
* `osDisk` (optional object):
|
||||
* `diskSizeGB` (optional integer): The size of the disk in gigabytes (GB).
|
||||
* `type` (optional string): The Azure instance type.
|
||||
|
||||
## Examples
|
||||
|
||||
An example `install-config.yaml` is shown below. This configuration has been modified to show the customization that is possible via the install config.
|
||||
Some example `install-config.yaml` are shown below.
|
||||
For examples of platform-agnostic configuration fragments, see [here](../customization.md#examples).
|
||||
|
||||
### Minimal
|
||||
|
||||
An example minimal Azure install config is:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform:
|
||||
azure:
|
||||
region: centralus
|
||||
baseDomainResourceGroupName: os4-common
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Custom machine pools
|
||||
|
||||
An example Azure install config with custom machine pools:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
@@ -32,14 +63,6 @@ compute:
|
||||
replicas: 5
|
||||
metadata:
|
||||
name: test-cluster
|
||||
networking:
|
||||
clusterNetwork:
|
||||
- cidr: 10.128.0.0/14
|
||||
hostPrefix: 23
|
||||
machineCIDR: 10.0.0.0/16
|
||||
serviceNetwork:
|
||||
- 172.30.0.0/16
|
||||
networkType: OpenShiftSDN
|
||||
platform:
|
||||
azure:
|
||||
region: centralus
|
||||
|
||||
@@ -12,16 +12,155 @@ The most simple customization is exposed by the installer as an interactive seri
|
||||
|
||||
While the default cluster size may be sufficient for some, many will need to make alterations. This can include increasing the number of machines in the control plane, changing the type of the virtual machines that will be used (e.g. AWS instances), or adjusting the CIDR range used for the Kubernetes service network. This level of customization is exposed via the installer's `install-config.yaml`. The install-config can be accessed by running `openshift-install create install-config`. This file can then be modified as needed before running a later target.
|
||||
|
||||
The `install-config.yaml` generated by the installer will not have all of the available fields populated, so they will need to be manually added if they are needed. The full list of available fields can be found in the [Go Docs][godocs]. Documentation for each of the supported platforms can be found in their platform-specific section:
|
||||
The `install-config.yaml` generated by the installer will not have all of the available fields populated, so they may need to be manually added if they are needed.
|
||||
|
||||
- [AWS][aws-customization]
|
||||
- [Azure][azure-customization]
|
||||
- [OpenStack][openstack-customization]
|
||||
The following `install-config.yaml` properties are available:
|
||||
|
||||
[aws-customization]: aws/customization.md
|
||||
[azure-customization]: azure/customization.md
|
||||
[godocs]: https://godoc.org/github.com/openshift/installer/pkg/types#InstallConfig
|
||||
[openstack-customization]: openstack/customization.md
|
||||
* `apiVersion` (required string): The API version for the `install-config.yaml` content.
|
||||
The current version (as described in this documentation) is `v1`.
|
||||
The installer may also support older API versions.
|
||||
* `additionalTrustBundle` (optional string): a PEM-encoded X.509 certificate bundle that will be added to the nodes' trusted certificate store.
|
||||
* `baseDomain` (required string): The base domain to which the cluster should belong.
|
||||
* `controlPlane` (optional [machine-pool](#machine-pools)): The configuration for the machines that comprise the control plane.
|
||||
* `compute` (optional array of [machine-pools](#machine-pools)): The configuration for the machines that comprise the compute nodes.
|
||||
* `imageContentSources` (optional array of objects): Sources and repositories for the release-image content.
|
||||
Each entry in the array is an object with the following properties:
|
||||
* `source` (required string): The repository that users refer to, e.g. in image pull specifications.
|
||||
* `mirrors` (optional array of strings): One or more repositories that may also contain the same images.
|
||||
* `metadata` (required object): Kubernetes resource ObjectMeta, from which only the `name` parameter is consumed.
|
||||
* `name` (required string): The name of the cluster.
|
||||
DNS records for the cluster are all subdomains of `{{.metadata.name}}.{{.baseDomain}}`.
|
||||
* `networking` (optional object): The configuration for the pod network provider in the cluster.
|
||||
* `clusterNetwork` (optional array of objects): The IP address pool for pods.
|
||||
The default is 10.128.0.0/14 with a host prefix of /23.
|
||||
* `cidr` (required [IP network](#ip-networks)): The IP block address pool.
|
||||
* `hostPrefix` (required integer): The prefix size to allocate to each node from the CIDR.
|
||||
For example, 24 would allocate 2^8=256 adresses to each node.
|
||||
* `machineCIDR` (optional [IP network](#ip-networks)): The IP address pool for machines.
|
||||
The default is 10.0.0.0/16 for all platforms other than libvirt.
|
||||
For libvirt, the default is 192.168.126.0/24.
|
||||
* `networkType` (optional string): The type of network to install.
|
||||
The default is [OpenShiftSDN][openshift-sdn].
|
||||
* `serviceNetwork` (optional array of [IP networks](#ip-networks)): The IP address pool for services.
|
||||
The default is 172.30.0.0/16.
|
||||
* `platform` (required object): The configuration for the specific platform upon which to perform the installation.
|
||||
* `aws` (optional object): [AWS-specific properties](aws/customization.md#cluster-scoped-properties).
|
||||
* `azure` (optional object): [Azure-specific properties](azure/customization.md#cluster-scoped-properties).
|
||||
* `openstack` (optional object): [OpenStack-specific properties](openstack/customization.md#cluster-scoped-properties).
|
||||
* `vsphere` (optional object): [vSphere-specific properties](vsphere/customization.md#cluster-scoped-properties).
|
||||
* `proxy` (optional object): The proxy settings for the cluster.
|
||||
If unset, the cluster will not be configured to use a proxy.
|
||||
* `httpProxy` (optional string): The URL of the proxy for HTTP requests.
|
||||
* `httpsProxy` (optional string): The URL of the proxy for HTTPS requests.
|
||||
* `noProxy` (optional string): A comma-separated list of domains and [CIDRs][cidr-notation] for which the proxy should not be used.
|
||||
* `pullSecret` (required string): The secret to use when pulling images.
|
||||
* `sshKey` (optional string): The public Secure Shell (SSH) key to provide access to instances.
|
||||
|
||||
### IP networks
|
||||
|
||||
IP networks are represented as strings using [Classless Inter-Domain Routing (CIDR) notation][cidr-notation] with a traditional IP address or network number, followed by the "/" (slash) character, followed by a decimal value between 0 and 32 that describes the number of significant bits.
|
||||
For example, 10.0.0.0/16 represents IP addresses 10.0.0.0 through 10.0.255.255.
|
||||
|
||||
### Machine pools
|
||||
|
||||
The following machine-pool properties are available:
|
||||
|
||||
* `hyperthreading` (optional string): Determines the mode of hyperthreading that machines in the pool will utalize.
|
||||
Valid values are `Enabled` (the default) and `Disabled`.
|
||||
* `name` (required string): The name of the machine pool.
|
||||
* `platform` (optional object): Platform-specific machine-pool configuration.
|
||||
* `aws` (optional object): [AWS-specific properties](aws/customization.md#machine-pools).
|
||||
* `azure` (optional object): [Azure-specific properties](azure/customization.md#machine-pools).
|
||||
* `openstack` (optional object): [OpenStack-specific properties](openstack/customization.md#machine-pools).
|
||||
* `vsphere` (optional object): [vSphere-specific properties](vsphere/customization.md#machine-pools).
|
||||
* `replicas` (optional integer): The machine count for the machine pool.
|
||||
|
||||
### Examples
|
||||
|
||||
While all complete `install-config.yaml` will contain platform-specific sections, the following example fragments demonstrate platform-agnostic options:
|
||||
|
||||
### Additional trust bundle
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
additionalTrustBundle: |
|
||||
-----BEGIN CERTIFICATE-----
|
||||
...base-64-encoded, DER Certificate Authority cert...
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
-----BEGIN CERTIFICATE-----
|
||||
...base-64-encoded, DER Certificate Authority cert...
|
||||
-----END CERTIFICATE-----
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform: ...
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Custom machine pools
|
||||
|
||||
An example install config with custom machine pools to grow the size of the worker pool and disable hyperthreading:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
controlPlane:
|
||||
name: master
|
||||
hyperthreading: Disabled
|
||||
compute:
|
||||
- name: worker
|
||||
hyperthreading: Disabled
|
||||
replicas: 5
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform: ...
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Custom networking
|
||||
|
||||
An example install config with custom networking:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
networking:
|
||||
clusterNetworks:
|
||||
- cidr: 10.128.0.0/14
|
||||
hostPrefix: 23
|
||||
machineCIDR: 10.0.0.0/16
|
||||
networkType: OpenShiftSDN
|
||||
serviceNetwork:
|
||||
- 172.30.0.0/16
|
||||
platform: ...
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Proxy
|
||||
|
||||
An example install config routing outgoing traffic through a proxy:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
proxy:
|
||||
httpsProxy: https://username:password@proxy.example.com:123/
|
||||
httpProxy: https://username:password@proxy.example.com:123/
|
||||
noProxy: 123.example.com,10.88.0.0/16
|
||||
platform: ...
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
If your proxy certificate is signed by a certificate authority which RHCOS does not trust by default, you may also wish to configure [an additional trust bundle](#additional-trust-bundle).
|
||||
|
||||
## Kubernetes Customization (unvalidated)
|
||||
|
||||
@@ -194,12 +333,6 @@ For example:
|
||||
worker-edab0895c59dba7a566f4b955d87d964 3.11.0-744-g5b05d9d3-dirty 2.2.0 137m
|
||||
```
|
||||
|
||||
[default-kubelet-service]: https://github.com/openshift/machine-config-operator/blob/master/templates/master/01-master-kubelet/_base/units/kubelet.yaml
|
||||
[machine-config-operator]: https://github.com/openshift/machine-config-operator#machine-config-operator
|
||||
[machine-config-pool]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfigController.md#machinepool
|
||||
[machine-config]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfiguration.md
|
||||
[master-machine-config-pool]: https://github.com/openshift/machine-config-operator/blob/master/manifests/master.machineconfigpool.yaml
|
||||
|
||||
## OS Customization (unvalidated)
|
||||
|
||||
In rare circumstances, certain modifications to the bootstrap and other machines may be necessary. The installer provides the "ignition-configs" target, which allows arbitrary modification to the [Ignition Configs][ignition] used to boot these machines. Note that there is currently no validation on the modifications that are made, so it is possible that the changes will result in a non-functioning cluster.
|
||||
@@ -237,4 +370,11 @@ An example `worker.ign` is shown below. It has been modified to increase the HTT
|
||||
}
|
||||
```
|
||||
|
||||
[cidr-notation]: https://tools.ietf.org/html/rfc4632#section-3.1
|
||||
[default-kubelet-service]: https://github.com/openshift/machine-config-operator/blob/master/templates/master/01-master-kubelet/_base/units/kubelet.yaml
|
||||
[ignition]: https://coreos.com/ignition/docs/latest/
|
||||
[machine-config-operator]: https://github.com/openshift/machine-config-operator#machine-config-operator
|
||||
[machine-config-pool]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfigController.md#machinepool
|
||||
[machine-config]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfiguration.md
|
||||
[master-machine-config-pool]: https://github.com/openshift/machine-config-operator/blob/master/manifests/master.machineconfigpool.yaml
|
||||
[openshift-sdn]: https://github.com/openshift/sdn
|
||||
|
||||
@@ -120,7 +120,7 @@ The OpenShift Installer provides administrators various assets that are required
|
||||
|
||||
### Setting up install-config for installer
|
||||
|
||||
The OpenShift installer uses an [Install Config][install-config] to drive all install time configuration.
|
||||
The OpenShift installer uses an [Install Config](../customization.md#platform-customization) to drive all install time configuration.
|
||||
|
||||
An example install config for bare-metal UPI is as follows:
|
||||
|
||||
@@ -312,7 +312,6 @@ terraform destroy -auto-approve
|
||||
[coreos-matchbox]: https://github.com/coreos/matchbox#matchbox----
|
||||
[csr-request]: https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/#requesting-a-certificate
|
||||
[etcd-ports]: https://github.com/openshift/origin/pull/21520
|
||||
[install-config]: https://godoc.org/github.com/openshift/installer/pkg/types#InstallConfig
|
||||
[machine-config-server]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfigServer.md
|
||||
[openshift-router]: https://github.com/openshift/cluster-ingress-operator#openshift-ingress-operator
|
||||
[rrdns]: https://tools.ietf.org/html/rfc1794
|
||||
|
||||
@@ -1,29 +1,56 @@
|
||||
# OpenStack Platform Customization
|
||||
|
||||
In the OpenShift Installer `install-config.yaml` you can set the following options regarding the OpenStack platform:
|
||||
Beyond the [platform-agnostic `install-config.yaml` properties](../customization.md#platform-customization), the installer supports additional, OpenStack-specific properties.
|
||||
|
||||
- `machines.platform.openstack.region` - The OpenStack region where the cluster will get created
|
||||
- `machines.platform.openstack.cloud` - Name of the OpenStack cloud to use from clouds.yaml
|
||||
- `machines.platform.openstack.externalNetwork` - The OpenStack external network name to be used for installation
|
||||
- `machines.platform.openstack.computeFlavor` - The OpenStack compute flavor to use for master servers
|
||||
- `machines.platform.openstack.lbFloatingIP` - Existing Floating IP to associate with API loadbalancer
|
||||
- `machines.platform.openstack.trunkSupport` - Whether OpenStack ports can be trunked. True or False
|
||||
- `machines.platform.openstack.octaviaSupport` - Whether OpenStack supports Octavia. True of False
|
||||
- `machines.platform.openstack.defaultMachinePlatform` - (optional) The default configuration used when installing on OpenStack for machine pools
|
||||
## Cluster-scoped properties
|
||||
|
||||
For more technical definitions, see the [go docs](https://godoc.org/github.com/openshift/installer/pkg/types/openstack#Platform).
|
||||
* `cloud` (required string): The name of the OpenStack cloud to use from `clouds.yaml`.
|
||||
* `computeFlavor` (required string): The OpenStack compute flavor to use for control-plane machines.
|
||||
This is currently required, but has lower precedence than [the `type` property](#machine-pools) on [the `controlPlane` machine-pool](../customization.md#platform-customization).
|
||||
* `externalNetwork` (required string): The OpenStack external network name to be used for installation.
|
||||
* `lbFloatingIP` (required string): Existing Floating IP to associate with the API load balancer.
|
||||
* `octaviaSupport` (optional string): Whether OpenStack supports Octavia (`1` for true or `0` for false)
|
||||
* `region` (required string): The OpenStack region where the cluster will be created.
|
||||
* `trunkSupport` (optional string): Whether OpenStack ports can be trunked (`1` for true or `0` for false)
|
||||
|
||||
## Machine pools
|
||||
|
||||
* `type` (optional string): The OpenStack flavor name for machines in the pool.
|
||||
|
||||
## Examples
|
||||
|
||||
The example `install-config.yaml` below showcases all the possible OpenStack customizations.
|
||||
Some example `install-config.yaml` are shown below.
|
||||
For examples of platform-agnostic configuration fragments, see [here](../customization.md#examples).
|
||||
|
||||
### Minimal
|
||||
|
||||
An example minimal OpenStack install config is:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform:
|
||||
openstack:
|
||||
cloud: mycloud
|
||||
computeFlavor: m1.s2.xlarge
|
||||
externalNetwork: external
|
||||
lbFloatingIP: 128.0.0.1
|
||||
region: region1
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
### Custom machine pools
|
||||
|
||||
An example OpenStack install config with custom machine pools:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
clusterID: os-test
|
||||
controlPlane:
|
||||
name: master
|
||||
platform: {}
|
||||
replicas: 3
|
||||
compute:
|
||||
- name: worker
|
||||
@@ -32,24 +59,14 @@ compute:
|
||||
type: ml.large
|
||||
replicas: 3
|
||||
metadata:
|
||||
name: example
|
||||
networking:
|
||||
clusterNetwork:
|
||||
- cidr: 10.128.0.0/14
|
||||
hostPrefix: 23
|
||||
machineCIDR: 10.0.0.0/16
|
||||
serviceNetwork:
|
||||
- 172.30.0.0/16
|
||||
networkType: OpenShiftSDN
|
||||
name: test-cluster
|
||||
platform:
|
||||
openstack:
|
||||
region: region1
|
||||
cloud: mycloud
|
||||
computeFlavor: m1.s2.xlarge
|
||||
externalNetwork: external
|
||||
computeFlavor: m1.xlarge
|
||||
lbFloatingIP: 128.0.0.1
|
||||
trunkSupport: false
|
||||
octaviaSupport: false
|
||||
region: region1
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
|
||||
40
docs/user/vsphere/customization.md
Normal file
40
docs/user/vsphere/customization.md
Normal file
@@ -0,0 +1,40 @@
|
||||
# vSphere Platform Customization
|
||||
|
||||
Beyond the [platform-agnostic `install-config.yaml` properties](../customization.md#platform-customization), the installer supports additional, vSphere-specific properties.
|
||||
|
||||
## Cluster-scoped properties
|
||||
|
||||
* `vCenter` (required string): The domain name or IP address of the vCenter.
|
||||
* `username` (required string): The username to use to connect to the vCenter.
|
||||
* `password` (required string): The password to use to connect to the vCenter.
|
||||
* `datacenter` (required string): The name of the datacenter to use in the vCenter.
|
||||
* `defaultDatastore` (required string): The default datastore to use for provisioning volumes.
|
||||
|
||||
## Machine pools
|
||||
|
||||
There are currently no configurable vSphere-specific machine-pool properties.
|
||||
|
||||
## Examples
|
||||
|
||||
Some example `install-config.yaml` are shown below.
|
||||
For examples of platform-agnostic configuration fragments, see [here](../customization.md#examples).
|
||||
|
||||
### Minimal
|
||||
|
||||
An example minimal vSphere install config is:
|
||||
|
||||
```yaml
|
||||
apiVersion: v1
|
||||
baseDomain: example.com
|
||||
metadata:
|
||||
name: test-cluster
|
||||
platform:
|
||||
vSphere:
|
||||
vcenter: your.vcenter.example.com
|
||||
username: username
|
||||
password: password
|
||||
datacenter: datacenter
|
||||
defaultDatastore: datastore
|
||||
pullSecret: '{"auths": ...}'
|
||||
sshKey: ssh-ed25519 AAAA...
|
||||
```
|
||||
@@ -122,7 +122,7 @@ The OpenShift Installer provides administrators various assets that are required
|
||||
|
||||
### Setting up install-config for installer
|
||||
|
||||
The OpenShift installer uses an [Install Config][install-config] to drive all install time configuration.
|
||||
The OpenShift installer uses an [Install Config](../customization.md#platform-customization) to drive all install time configuration.
|
||||
|
||||
An example install config for vSphere UPI is as follows:
|
||||
|
||||
@@ -438,7 +438,6 @@ terraform destroy -auto-approve
|
||||
[aws-route53]: https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html
|
||||
[csr-request]: https://kubernetes.io/docs/tasks/tls/managing-tls-in-a-cluster/#requesting-a-certificate
|
||||
[etcd-ports]: https://github.com/openshift/origin/pull/21520
|
||||
[install-config]: https://godoc.org/github.com/openshift/installer/pkg/types#InstallConfig
|
||||
[machine-config-server]: https://github.com/openshift/machine-config-operator/blob/master/docs/MachineConfigServer.md
|
||||
[openshift-router]: https://github.com/openshift/cluster-ingress-operator#openshift-ingress-operator
|
||||
[rrdns]: https://tools.ietf.org/html/rfc1794
|
||||
|
||||
@@ -10,7 +10,7 @@ type MachinePool struct {
|
||||
// eg. m4-large
|
||||
InstanceType string `json:"type"`
|
||||
|
||||
// EC2RootVolume defines the storage for ec2 instance.
|
||||
// EC2RootVolume defines the root volume for EC2 instances in the machine pool.
|
||||
EC2RootVolume `json:"rootVolume"`
|
||||
}
|
||||
|
||||
@@ -41,10 +41,11 @@ func (a *MachinePool) Set(required *MachinePool) {
|
||||
|
||||
// EC2RootVolume defines the storage for an ec2 instance.
|
||||
type EC2RootVolume struct {
|
||||
// IOPS defines the iops for the storage.
|
||||
// IOPS defines the amount of provisioned IOPS. This is only valid
|
||||
// for type io1.
|
||||
IOPS int `json:"iops"`
|
||||
// Size defines the size of the storage.
|
||||
// Size defines the size of the volume in gibibytes (GiB).
|
||||
Size int `json:"size"`
|
||||
// Type defines the type of the storage.
|
||||
// Type defines the type of the volume.
|
||||
Type string `json:"type"`
|
||||
}
|
||||
|
||||
@@ -10,7 +10,9 @@ type Platform struct {
|
||||
// Region specifies the AWS region where the cluster will be created.
|
||||
Region string `json:"region"`
|
||||
|
||||
// UserTags specifies additional tags for AWS resources created for the cluster.
|
||||
// UserTags additional keys and values that the installer will add
|
||||
// as tags to all resources that it creates. Resources created by the
|
||||
// cluster itself may not include these tags.
|
||||
// +optional
|
||||
UserTags map[string]string `json:"userTags,omitempty"`
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ type Platform struct {
|
||||
// Region specifies the Azure region where the cluster will be created.
|
||||
Region string `json:"region"`
|
||||
|
||||
// BaseDomainResourceGroupName specifies the resource group where the azure DNS zone for the base domain is found
|
||||
// BaseDomainResourceGroupName specifies the resource group where the Azure DNS zone for the base domain is found.
|
||||
BaseDomainResourceGroupName string `json:"baseDomainResourceGroupName,omitempty"`
|
||||
// DefaultMachinePlatform is the default configuration used when
|
||||
// installing on Azure for machine pools which do not define their own
|
||||
|
||||
@@ -54,14 +54,15 @@ type InstallConfig struct {
|
||||
// +optional
|
||||
AdditionalTrustBundle string `json:"additionalTrustBundle,omitempty"`
|
||||
|
||||
// SSHKey is the public ssh key to provide access to instances.
|
||||
// SSHKey is the public Secure Shell (SSH) key to provide access to instances.
|
||||
// +optional
|
||||
SSHKey string `json:"sshKey,omitempty"`
|
||||
|
||||
// BaseDomain is the base domain to which the cluster should belong.
|
||||
BaseDomain string `json:"baseDomain"`
|
||||
|
||||
// Networking defines the pod network provider in the cluster.
|
||||
// Networking is the configuration for the pod network provider in
|
||||
// the cluster.
|
||||
*Networking `json:"networking,omitempty"`
|
||||
|
||||
// ControlPlane is the configuration for the machines that comprise the
|
||||
@@ -69,7 +70,8 @@ type InstallConfig struct {
|
||||
// +optional
|
||||
ControlPlane *MachinePool `json:"controlPlane,omitempty"`
|
||||
|
||||
// Compute is the list of compute MachinePools that need to be installed.
|
||||
// Compute is the configuration for the machines that comprise the
|
||||
// compute nodes.
|
||||
// +optional
|
||||
Compute []MachinePool `json:"compute,omitempty"`
|
||||
|
||||
@@ -86,6 +88,7 @@ type InstallConfig struct {
|
||||
Proxy *Proxy `json:"proxy,omitempty"`
|
||||
|
||||
// ImageContentSources lists sources/repositories for the release-image content.
|
||||
// +optional
|
||||
ImageContentSources []ImageContentSource `json:"imageContentSources,omitempty"`
|
||||
}
|
||||
|
||||
@@ -160,10 +163,10 @@ func (p *Platform) Name() string {
|
||||
|
||||
// Networking defines the pod network provider in the cluster.
|
||||
type Networking struct {
|
||||
// MachineCIDR is the IP address space from which to assign machine IPs.
|
||||
// MachineCIDR is the IP address pool for machines.
|
||||
// +optional
|
||||
// Default is 10.0.0.0/16 for all platforms other than Libvirt.
|
||||
// For Libvirt, the default is 192.168.126.0/24.
|
||||
// Default is 10.0.0.0/16 for all platforms other than libvirt.
|
||||
// For libvirt, the default is 192.168.126.0/24.
|
||||
MachineCIDR *ipnet.IPNet `json:"machineCIDR,omitempty"`
|
||||
|
||||
// NetworkType is the type of network to install.
|
||||
@@ -171,14 +174,14 @@ type Networking struct {
|
||||
// Default is OpenShiftSDN.
|
||||
NetworkType string `json:"networkType,omitempty"`
|
||||
|
||||
// ClusterNetwork is the IP address pool to use for pod IPs.
|
||||
// ClusterNetwork is the IP address pool for pods.
|
||||
// +optional
|
||||
// Default is 10.128.0.0/14 and a host prefix of /23
|
||||
// Default is 10.128.0.0/14 and a host prefix of /23.
|
||||
ClusterNetwork []ClusterNetworkEntry `json:"clusterNetwork,omitempty"`
|
||||
|
||||
// ServiceNetwork is the IP address pool to use for service IPs.
|
||||
// ServiceNetwork is the IP address pool for services.
|
||||
// +optional
|
||||
// Default is 172.30.0.0/16
|
||||
// Default is 172.30.0.0/16.
|
||||
// NOTE: currently only one entry is supported.
|
||||
ServiceNetwork []ipnet.IPNet `json:"serviceNetwork,omitempty"`
|
||||
|
||||
@@ -200,7 +203,7 @@ type Networking struct {
|
||||
// ClusterNetworkEntry is a single IP address block for pod IP blocks. IP blocks
|
||||
// are allocated with size 2^HostSubnetLength.
|
||||
type ClusterNetworkEntry struct {
|
||||
// The IP block address pool
|
||||
// CIDR is the IP block address pool.
|
||||
CIDR ipnet.IPNet `json:"cidr"`
|
||||
|
||||
// HostPrefix is the prefix size to allocate to each node from the CIDR.
|
||||
|
||||
@@ -27,13 +27,13 @@ type MachinePool struct {
|
||||
// For the compute machine pools, the only valid name is "worker".
|
||||
Name string `json:"name"`
|
||||
|
||||
// Replicas is the count of machines for this machine pool.
|
||||
// Replicas is the machine count for the machine pool.
|
||||
Replicas *int64 `json:"replicas,omitempty"`
|
||||
|
||||
// Platform is configuration for machine pool specific to the platform.
|
||||
Platform MachinePoolPlatform `json:"platform"`
|
||||
|
||||
// Hyperthreading determines the mode of hyperthreading that machines in this
|
||||
// Hyperthreading determines the mode of hyperthreading that machines in the
|
||||
// pool will utilize.
|
||||
// +optional
|
||||
// Default is for hyperthreading to be enabled.
|
||||
|
||||
Reference in New Issue
Block a user