Chain: ipi-conf-openstack

The ipi-conf-openstack chain contains all the refs and chains necessary to configure the system before deploying an IPI installation of OpenShift onto OpenStack. ipi-conf-openstack-noramfs is identical to this chain, except that it omits the ipi-conf-etcd-on-ramfs step.

Steps

Name Description
openstack-conf-clouds The ipi-conf-openstack-clouds ref configures the required cloud credentials and installs the required security certificates.
openstack-conf-resourcenames Selects the values for OPENSTACK_EXTERNAL_NETWORK, OPENSTACK_COMPUTE_FLAVOR and ZONES based on a matrix that uses CLUSTER_TYPE. Also generates a safe CLUSTER_NAME. All values are persisted in $SHARED_DIR.
openstack-provision-machinesubnet This step creates the necessary resources for user-provided custom subnet when $CONFIG_TYPE is byon. It creates a network named "${CLUSTER_NAME}-network". Then it adds to it a subnet named "${CLUSTER_NAME}-subnet" and creates a router named "${CLUSTER_NAME}-router". It attaches the router to the subnet of the $OPENSTACK_EXTERNAL_NETWORK. Finally, it writes their UIDS to ${SHARED_DIR}.
openstack-provision-bastionproxy This step creates the bastion proxy when $CONFIG_TYPE is byon.
openstack-provision-proxyconf This step creates the proxy-conf.sh script.
openstack-conf-createfips Creates two floating IPs in OPENSTACK_EXTERNAL_NETWORK with the description set to "${SHARED_DIR/CLUSTER_NAME".api-fip and "${SHARED_DIR/CLUSTER_NAME".ingress-fip. Writes IP and UID of created FIPs to $SHARED_DIR for later reference.
openstack-conf-generateconfig Generates the necessary install-config.yaml file based on the requested CONFIG_TYPE. Saves the file as ${SHARED_DIR}/install-config.yaml. Load balancer IP and cluster name, are expected to be in ${SHARED}/API_IP and ${SHARED_DIR}/CLUSTER_NAME respectively. This ref is compatible with OCP 4.6+ and will break 4.5, because `ingressFloatingIP` was only introduced in 4.6.
openstack-conf-creatednsrecords This steps creates the required dns records for the ingress and api FIPS. Expects the following to exist ${SHARED_DIR}/API_IP, ${SHARED_DIR}/INGRESS_IP, and ${SHARED_DIR}/CLUSTER_NAME. Creates ${SHARED_DIR}/api-record.json and ${SHARED_DIR}/ingress-record.json.
openstack-conf-exportcindercredentials Prepares a file to export the OpenStack credentials for Cinder.
ipi-conf-etcd-on-ramfs This step creates a machine config for the master nodes to use ramfs for etcd
ipi-conf-openstack-precheck The ipi-conf-openstack-precheck verifies the OpenStack infrastructure is ready for deploying an OpenShift cluster on to it.
ipi-install-monitoringpvc The IPI install monitoringpvc step configures cluster-monitoring operator to save prometheus data in a persistent storage. This would ensure metrics are kept during upgrades.

Dependencies

No step in this chain sets dependencies.[?]

Environment

In addition to the default environment, the following variables are consumed through this chain

Variable Name Variable Content Consumed By Steps
ADDITIONAL_WORKERS_NETWORKS Space-separated list of Neutron network names that will be connected to the worker nodes. openstack-conf-generateconfig
ALLOCATION_POOL_END (default: 172.16.0.254) openstack-provision-machinesubnet
ALLOCATION_POOL_START (default: 172.16.0.10) openstack-provision-machinesubnet
API_VIP (default: 172.16.0.5) openstack-provision-machinesubnet
APPLICATION_CREDENTIALS If this variable is not empty, the provided clouds.yaml will contain ephemeral application credentials. openstack-conf-clouds
APPLICATION_CREDENTIALS_EXPIRATION When to set the expiration of the application credentials. Use a format that `date -d` would understand. This variable has no effect if APPLICATION_CREDENTIALS is empty. (default: 5 hours) openstack-conf-clouds
BASE_DOMAIN openstack-conf-generateconfig openstack-conf-creatednsrecords ipi-conf-openstack-precheck
BASTION_FLAVOR The flavor of the bastion machine. Defaults to the value in "${SHARED_DIR}/BASTION_FLAVOR" openstack-provision-bastionproxy
BASTION_IMAGE The image of the bastion machine (default: centos8-stream) openstack-provision-bastionproxy
BASTION_SUBNET_RANGE (default: 10.0.0.0/16) openstack-provision-machinesubnet
BASTION_USER The user of the bastion machine (default: centos) openstack-provision-bastionproxy
CLUSTER_TYPE_OVERRIDE This will override CLUSTER_TYPE in the `commands` file if set. openstack-conf-clouds openstack-conf-resourcenames
CONFIG_TYPE The type of config for the environment to deploy. * 'minimal' - Configure the install-config with the minimal options to make it work on our tests, which requires the usage of floating IPs. This config type doesn't require a proxy server to be deployed. * 'byon' - Configure the install-config to use a pre-created network (BYON) so it wouln't require the usage of floating IPs. This config type will require a proxy server to be deployed. * 'proxy' - Configure the install-config to use a pre-created restricted network (BYON) and a Cluster Proxy. openstack-provision-machinesubnet openstack-provision-bastionproxy openstack-conf-createfips openstack-conf-generateconfig openstack-conf-generateconfig openstack-conf-creatednsrecords
DNS_IP (default: 1.1.1.1) openstack-provision-machinesubnet
FIPS_ENABLED (default: false) openstack-conf-generateconfig
IGNITIONVERSION ignition version to use for mco. (default: 3.1.0) ipi-conf-etcd-on-ramfs
INGRESS_VIP (default: 172.16.0.7) openstack-provision-machinesubnet
NETWORK_TYPE The Network type used during the installation (default: OpenShiftSDN) openstack-provision-bastionproxy openstack-conf-generateconfig
OPENSTACK_COMPUTE_FLAVOR If not passed, the command script chooses the value based on CLUSTER_TYPE. openstack-conf-resourcenames openstack-conf-generateconfig
OPENSTACK_CONTROLPLANE_FLAVOR If not passed, the command script chooses the value based on CLUSTER_TYPE. openstack-conf-resourcenames openstack-conf-generateconfig
OPENSTACK_EXTERNAL_NETWORK If not passed, the command script chooses the value based on CLUSTER_TYPE. openstack-conf-resourcenames openstack-provision-machinesubnet openstack-provision-bastionproxy openstack-conf-createfips openstack-conf-generateconfig
OPENSTACK_PROVIDER_NETWORK Name of the OpenStack provider network if any. openstack-provision-machinesubnet openstack-conf-generateconfig
OS_CLOUD Name of cloud to use from the clouds.yaml file (default: openstack) openstack-conf-clouds openstack-provision-machinesubnet openstack-provision-bastionproxy openstack-provision-proxyconf openstack-conf-createfips openstack-conf-generateconfig openstack-conf-exportcindercredentials
SUBNET_RANGE (default: 172.16.0.0/24) openstack-provision-machinesubnet
TRY_COUNT number of times to retry (default: 5) ipi-conf-openstack-precheck
WAIT_TIME number of seconds to wait before trying. (default: 60) ipi-conf-openstack-precheck
ZONES If not passed, the command script chooses the value based on CLUSTER_TYPE. openstack-conf-resourcenames openstack-conf-generateconfig
ZONES_COUNT The number of AZs to present in the cluster. Accepted values are 0 and 1. (default: 0) openstack-provision-machinesubnet openstack-provision-bastionproxy openstack-conf-generateconfig

Step Graph

Webreg Chain "ipi-conf-openstack" 0 openstack-conf-clouds 1 openstack-conf-resourcenames 0->1 2 openstack-provision-machinesubnet 1->2 3 openstack-provision-bastionproxy 2->3 4 openstack-provision-proxyconf 3->4 5 openstack-conf-createfips 4->5 6 openstack-conf-generateconfig 5->6 7 openstack-conf-creatednsrecords 6->7 8 openstack-conf-exportcindercredentials 7->8 9 ipi-conf-etcd-on-ramfs 8->9 10 ipi-conf-openstack-precheck 9->10 11 ipi-install-monitoringpvc 10->11

GitHub Link:

https://github.com/openshift/release/blob/master/ci-operator/step-registry/ipi/conf/openstack/ipi-conf-openstack-chain.yaml

Owners:

Approvers:

Reviewers:

Source code for this page located on GitHub