The OpenShift 4 IPI OpenStack install playbook is OCP-4.X/install-on-osp.yml
and will deploy a cluster on OpenStack. In addition to installing a cluster, the playbook can also perform day 2 operations to include deploying three infra nodes and deploying a workload node to isolate workload driver pods from openshift-scale/workloads repo.
The OpenStack cloud in which this has been tested with and on is a Red Hat OpenStack Platform 13 cloud installed via tripleo. The install orchestration used to deploy the cloud is openshift-scale/scale-ci-tripleo.
Running from the CLI:
$ cp OCP-4.X/inventory.example inventory
$ # Edit inventory and add your undercloud machine as the orchestration host
$ # Edit deployment variables (Ex vi OCP-4.X/vars/install-on-osp.yml) or define env variables
$ ansible-playbook -v -i inventory OCP-4.X/install-on-osp.yml
Note that for Tripleo OpenStack Clouds, the Undercloud machine is used as the orchestration host as it will be easier to setup/coordinate any sort of lab specific networking on this machine (Usually).
Documents for initializing can be found here - ocp4_common_env_var.md
After that initialize the following variables -
Default: true
Determines if the flavors will be created on the OpenStack Cloud.
Default: true
Determines if the image will be uploaded into Glance on the OpenStack Cloud. If performing multiple deploys/cleanups, it can save time if the image is uploaded and then these steps skipped in the future installs.
Default: No default. Location to download the latest RHCOS image. The image is expected in qcow2 format so it will be converted into raw to take advantage of the Ceph driver for Glance. The latest image can be found in https://github.com/openshift/installer/blob/master/data/data/rhcos.json.
Default: example.com
The base domain for the cluster.
Default: scale-ci
The name of the cluster.
Default: 3
The number of master nodes.
Default: 5
The number of worker nodes to install.
Default: m4.xlarge
The flavor of the masters.
Default: m4.xlarge
The flavor of the worker nodes.
Default: machine.openshift.io
The prefix used in machinesets. Usually this is machine.openshift.io
however it might be sigs.k8s.io
depending on version installed.
Default: m4.xlarge
The flavor for infra nodes.
Default: m4.xlarge
The flavor for the workload node.
Default: 15d
The retention period for the Prometheus server.
Default: standard
The storage class for Prometheus server.
Default: 10Gi
The storage size for Prometheus server.
Default: standard
The storage class for the alertmanager servers.
Default: 2Gi
The storage size for the alert manager servers.
Instead of a cleanup step, the OpenStack cleanup is a separate playbook due to a few additional steps and the potential for cleanup to be unsuccessful. Thus separating into a separate playbook provides the operator a good segue to double check things before redeploying again.
To run the cleanup playbook from the CLI:
$ cp OCP-4.X/inventory.example inventory
$ # Edit inventory and add your undercloud machine as the orchestration host
$ # Edit cleanup variables (Ex vi OCP-4.X/vars/clean-on-osp.yml) or define env variables
$ ansible-playbook -vv -i inventory OCP-4.X/clean-on-osp.yml
Default: ~/.ssh/id_rsa.pub
Public ssh key file for Ansible.
Default: ~/.ssh/id_rsa
Private ssh key file for Ansible.
Default: stack
User for Ansible to log in as. Must authenticate with PUBLIC_KEY/PRIVATE_KEY.
Default: example.com
The base domain for the cluster.
Default: scale-ci
The name of the cluster.
Default: true
Determines if the flavors will be deleted on the OpenStack Cloud.
Default: true
Determines if the image will be deleted from Glance on the OpenStack Cloud.
Default: false
Controls whether the data server is launched.
Default: quay.io/openshift-scale/snappy-data-server
Latest, maintained image of the snappy data server.
Default: info
Data server log level. Current Uvicorn server options: *'critical', 'error', 'warning', 'info', 'debug', 'trace'.
Default: 7070
Data server service port.
Default: localhost
URL to public host of data server.
Default: ~/data_server
Absolute path to the data server's host's directory.
Default: No default. Secret to encode passwords in database.
Default: No default. Username for the first super user.
Default: No default. Password for the first super user.
Default: No default. Postgresql database super user password.