Beyond the platform-agnostic install-config.yaml
properties, the installer supports additional, OpenStack-specific properties.
cloud
(required string): The name of the OpenStack cloud to use fromclouds.yaml
.computeFlavor
(required string): The OpenStack flavor to use for compute and control-plane machines. This is currently required, but has lower precedence than thetype
property on thecompute
andcontrolPlane
machine-pools.externalDNS
(optional list of strings): The IP addresses of DNS servers to be used for the DNS resolution of all instances in the clusterexternalNetwork
(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 or0
for false)region
(deprecated string): The OpenStack region where the cluster will be created. Currently this value is not used by the installer.trunkSupport
(optional string): Whether OpenStack ports can be trunked (1
for true or0
for false)clusterOSImage
(optional string): Either a URL withhttp(s)
orfile
scheme to override the default OS image for cluster nodes or an existing Glance image name.
type
(optional string): The OpenStack flavor name for machines in the pool.rootVolume
(optional object): Defines the root volume for instances in the machine pool. The instances use ephemeral disks if not set.size
(required integer): Size of the root volume in GB.type
(required string): The volume pool to create the volume from.
Some example install-config.yaml
are shown below.
For examples of platform-agnostic configuration fragments, see here.
An example minimal OpenStack install config is:
apiVersion: v1
baseDomain: example.com
metadata:
name: test-cluster
platform:
openstack:
cloud: mycloud
computeFlavor: m1.s2.xlarge
externalNetwork: external
externalDNS:
- "8.8.8.8"
- "192.168.1.12"
lbFloatingIP: 128.0.0.1
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
An example OpenStack install config with custom machine pools:
apiVersion: v1
baseDomain: example.com
controlPlane:
name: master
replicas: 3
compute:
- name: worker
platform:
openstack:
type: ml.large
rootVolume:
size: 30
type: performance
replicas: 3
metadata:
name: test-cluster
platform:
openstack:
cloud: mycloud
computeFlavor: m1.s2.xlarge
externalNetwork: external
lbFloatingIP: 128.0.0.1
pullSecret: '{"auths": ...}'
sshKey: ssh-ed25519 AAAA...
Normally the installer downloads the RHCOS image from a predetermined location described in data/data/rhcos.json). But the download URL can be overridden, notably for disconnected installations.
To do so and upload binary data from a custom location the user may set clusterOSImage
parameter in the install config that points to that location, and then start the installation. In all other respects the process will be consistent with the default.
NOTE: For this to work, the parameter value must be a valid http(s) URL.
NOTE: The optional sha256
query parameter can be attached to the URL, which will force the installer to check the image file checksum before uploading it into Glance.
Example:
platform:
openstack:
clusterOSImage: http://mirror.example.com/images/rhcos-43.81.201912131630.0-openstack.x86_64.qcow2.gz?sha256=ffebbd68e8a1f2a245ca19522c16c86f67f9ac8e4e0c1f0a812b068b16f7265d
If the user wants to upload the image from the local file system, he can set clusterOSImage
as file:///path/to/file
. In this case the installer will take this file and automatically create an image in Glance.
Example:
platform:
openstack:
clusterOSImage: file:///home/user/rhcos.qcow2
If the user wants to reuse an existing Glance image without any uploading of binary data, then it is possible to set clusterOSImage
install config parameter that specifies the Glance image name. In this case no new Glance images will be created, and the image will stay when the cluster is destroyed. In other words, if clusterOSImage
is not an "http(s)" or "file" URL, then the installer will look into Glance for an image with that name.
Example:
platform:
openstack:
clusterOSImage: my-rhcos
For customizing the installation beyond what is possible with openshift-install
, refer to the UPI (User Provided Infrastructure) documentation.