Skip to main content

OpenStack

This deployment is responsible for the OpenStack deployment. For more information please refer to the respective repository documentation.

Deplyoment

To deploy, change into the appropriate overlay and run kustomize build | kubectl apply -f -

Preparation

  • deployed and running rook-ceph cluster on storage-nodes
    • replace ceph fsid uuid in config/*ceph.conf
    • get ceph keyrings for openstack services
      • see ceph deployment and example below
  • check interfaces for config/overrides/linuxbridge_agent.ini.tmpl
  • check and adjust config/*dockerconfig.json
  • check environment variables for OpenStack services
  • tag and check images for openstack

Typical Operations

Changing component releases

To change releases for COTB software components adapt the images listed within the images: section of the kusomization.yaml and run the deployment command again.

Variables

Cinder

File: overlays/workload/cinder_control.yaml

NameKindValuesDescription
CINDER_PASSWORDrequiredStringPassword for user Cinder against Keystone service.
DB_PORTrequired"3310"Database port for cinder-db, Set this according to the configured Database Port in cinder-db.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
INTERFACErequiredStringInterface to listen. In general eth0 inside of a container.
ISCSI_PORTrequired"3261"Set the port for exporting volumes via iscsi. Usually runs on 3261.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
MYSQL_PASSWORDrequiredStringMySQL Password for cinder-db
OS_ADMIN_PASSWORDrequiredStringOpenStack Admin Password
PUBLIC_DOMAINrequiredcinderSet (sub-) domain for the cinder service
PUBLIC_PORToptional"443"Overwrite the public port. Defaults to 8776.
VOLUME_BACKUP_NFSoptionalStringbackup NFS share if configured in hostname:path, ipaddr:path format.

Cinder-DB

File: overlays/workload/cinder_control.yaml

NameKindValuesDescription
MYSQL_DATABASErequiredcinderName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for cinder-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequiredcinderName of MySQL user for cinder-db

Arguments: Set the port to expose the database within your infrastructure.

Cinder-volume

File: overlays/workload/cinder_volume.yaml

NameKindValuesDescription
CINDER_PASSWORDrequiredStringPassword for user Cinder against Keystone service.
DB_PORTrequired"3310"Database port for cinder-db, Set this according to the configured Database Port in cinder-db.
DEVICErequired/dev/sda2Path to storage backend if cinder used with lvm.
INTERFACErequiredStringInterface to listen. In general eth0 inside of a container.
ISCSI_PORTrequired"3261"Set the port for exporting volumes via iscsi. Usually runs on 3261.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
MYSQL_PASSWORDrequiredStringMySQL Password for cinder-db
VOLUME_BACKUP_NFSoptionalStringbackup NFS share if configured in hostname:path, ipaddr:path format.
STORAGE_BACKENDrequiredceph, lvmSet the desired storage backend to be used.
RBD_SECRET_UUIDrequireduuidRBD secret uuid generated according the docs.

Designate-bind

File: overlays/workload/designate-bind.yaml

NameKindValuesDescription
PUBLIC_IPrequiredIPv4Set public IP for designates named config.

Designate

File: overlays/workload/designate.yaml

NameKindValuesDescription
DB_PORTrequired"3312"Database port for designate-db, Set this according to the configured Database Port in designate-db.
DEBUGoptional"false", "true"Configure Debug Logging for designate.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
MYSQL_PASSWORDrequiredStringMySQL Password for designate-db
DESIGNATE_PASSWORDrequiredStringPassword for user Designate against Keystone service.
OS_ADMIN_PASSWORDrequiredStringOpenStack Admin Password
PUBLIC_DOMAINrequireddesignateSet (sub-) domain for the designate service
PUBLIC_PORToptional"443"Overwrite the public port. Defaults to 9001.
PUBLIC_IPrequiredIPv4Set public IP for designates named config.
INTERFACE_INTERNALrequiredeth0Internal interface to listen. In general eth0 inside of a container.

Designate-DB

File: overlays/workload/designate.yaml

NameKindValuesDescription
MYSQL_DATABASErequirednovaName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for designate-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequirednovaName of MySQL user for designate-db

Arguments: Set the port to expose the database within your infrastructure.

Glance

File: overlays/workload/glance.yaml

NameKindValuesDescription
DB_PORTrequired"3311"Database port for glance-db, Set this according to the configured Database Port in glance-db.
GLANCE_PASSWORDrequiredStringPassword for user Glance against Keystone service.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
INTERFACE_INTERNALrequiredStringInternal interface to listen. In general eth0 inside of a container.
MYSQL_PASSWORDrequiredStringMySQL Password for glance-db
OS_ADMIN_PASSWORDrequiredStringOpenStack Admin Password
PUBLIC_DOMAINrequiredglanceSet (sub-) domain for the glance service.
PUBLIC_PORToptional"443"Overwrite the public port. Defaults to 9292.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO

Glance-DB

File: overlays/workload/glance.yaml

NameKindValuesDescription
MYSQL_DATABASErequiredglanceName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for glance-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequiredglanceName of MySQL user for glance-db

Arguments: Set the port to expose the database within your infrastructure.

Horizon

File: overlays/workload/horizon.yaml

NameKindValuesDescription
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
DEBUGoptional"False", "True"Configure Debug Logging for horizon.
DEFAULT_DOMAINoptionalStringSet the default domain for horizon. Defaults to "Default".
MULTIDOMAIN_SUPPORToptional"False", "True"Enable multidomain support for horizon. Defaults to "False"

Keystone

File: overlays/workload/keystone.yaml

NameKindValuesDescription
DB_PORTrequired"3307"Database port for keystone-db, Set this according to the configured Database Port in keystone-db.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
KEYSTONE_PORTrequired"5000"Set the internal port for keystone. Usually 5000.
KEYSTONE_TYPErequiredadminSet keystone type to admin. This performs additional bootstrapping operations on service initialization.
MYSQL_PASSWORDrequiredStringMySQL Password for keystone-db
OS_ADMIN_PASSWORDrequiredStringOpenStack Admin Password
PUBLIC_DOMAINrequiredkeystoneSet (sub-) domain for the keystone service.
PUBLIC_PORToptional"443"Overwrite the public port. Defaults to 5000.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO

Keystone-DB

File: overlays/workload/keystone.yaml

NameKindValuesDescription
MYSQL_DATABASErequiredkeystoneName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for keystone-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequiredkeystoneName of MySQL user for keystone-db

Arguments: Set the port to expose the database within your infrastructure.

Messageq

File: overlays/workload/messageq.yaml

NameKindValuesDescription
RABBIT_PORTrequired"5672"Configure port for Messageq Service. Usually 5672.
INTERFACE_INTERNALrequiredStringInternal interface to listen. In general eth0 inside of a container.
RABBIT_USERNAMErequiredStringSet default user for messageq. Usually openstack.
RABBIT_PASSWORDrequiredStringSet Password for messageq. This is consumed with the MESSAGEQ_PASSWORD in other services.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO

Neutron-Compute

File: overlays/workload/neutron_compute.yaml

NameKindValuesDescription
DB_PORTrequired"3309"Database port for neutron-db, Set this according to the configured Database Port in neutron-db.
INTERFACE_EXTERNALrequiredStringSet to the interface name of your external network. E.g. ethpublic
INTERFACE_INTERNALrequiredStringSet to the interface name of your data network. E.g. ethdata
INFERFACE_PHYS_VLANSoptionalStringComma seperated list of additional physical vlans. E.g. ethvlan.4-111
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
NEUTRON_PASSWORDrequiredStringPassword for user Neutron against Keystone service.

Neutron-Control

File: overlays/workload/neutron_control.yaml

NameKindValuesDescription
DB_PORTrequired"3309"Database port for neutron-db, Set this according to the configured Database Port in neutron-db.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
INTERFACE_CONTROLrequiredStringSet to the interface name of your control network. E.g. ethcontrol
INTERFACE_EXTERNALrequiredStringSet to the interface name of your external network. E.g. ethpublic
INFERFACE_PHYS_VLANSrequiredStringComma seperated list of additional physical vlans. E.g. ethvlan.4-111
INTERFACE_INTERNALrequiredStringSet to the interface name of your data network. E.g. ethdata
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
METADATA_SECRETrequiredStringShared metadata secret between nova and neutron
MYSQL_PASSWORDrequiredStringMySQL Password for neutron-db
NEUTRON_PASSWORDrequiredStringPassword for user Neutron against Keystone service.
NOVA_PASSWORDrequiredStringPassword for user Nova against Keystone service.
DESIGNATE_PASSWORDoptionalStringPassword for user Designate against Keystone service. Needed if you have configured designate.
OS_ADMIN_PASSWORDrequiredStringOpenStack admin password
PUBLIC_DOMAINrequiredneutronSet (sub-) domain for the neutron service.
PUBLIC_PORToptional"443"Overwrite the public port. Defaults to 9696.
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO

Neutron-DB

File: overlays/workload/neutron_control.yaml

NameKindValuesDescription
MYSQL_DATABASErequiredneutronName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for neutron-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequiredneutronName of MySQL user for neutron-db

Arguments: Set the port to expose the database within your infrastructure.

Nova-Compute-Libvirt

File: overlays/workload/libvirt_compute.yaml

NameKindValuesDescription
INTERFACErequiredStringSet to the interface name of your control network. E.g. ethcontrol
VIRT_TYPErequiredkvm, qemuConfigure virtualization type based on your machine suuport. Fallback to qemu if kvm is not supported.
RBD_SECRET_UUIDrequireduuidRBD secret uuid generated according the docs.

Nova-Compute

File: overlays/workload/nova-compute.yaml

NameKindValuesDescription
DB_PORTrequired"3308"Database port for nova-db, Set this according to the configured Database Port in nova-db.
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
INTERFACErequiredStringSet to the interface name of your control network. E.g. ethcontrol
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
NEUTRON_PASSWORDrequiredStringPassword for user Neutron against Keystone service.
NOVA_PASSWORDrequiredStringPassword for user Nova against Keystone service.
PUBLIC_VNC_DOMAINrequiredvncSet (sub-) domain for the vnc service.
VNC_PROXY_PORToptional"443"Overwrite the public vnc port. Defaults to 6080.
VIRT_TYPErequiredkvm, qemuConfigure virtualization type based on your machine suuport. Fallback to qemu if kvm is not supported.
VIRT_URIrequiredqemu+tcp://localhost/systemConfigure libvirt uri
RBD_SECRET_UUIDrequireduuidRBD secret uuid generated according the docs.

Nova-Control

File: overlays/workload/nova-control.yaml

NameKindValuesDescription
DB_PORTrequired"3308"Database port for nova-db, Set this according to the configured Database Port in nova-db.
DEFAULT_SCHEDULE_ZONErequiredStringConfigure the default scheduling zone. Usually nova
HTTP_SCHEMArequiredhttp, httpsHttp schema for service communication.
INTERFACE_INTERNALrequiredStringSet to the interface name of your control network. E.g. ethcontrol
LOG_LEVELoptionalDEBUG, INFO, WARNING, ERROR, CRITICALSet de log level of the application. Defaults to INFO
MESSAGEQ_PASSWORDrequiredStringPassword for Messageq
METADATA_SECRETrequiredStringShared metadata secret between nova and neutron
MYSQL_PASSWORDrequiredStringMySQL Password for nova-db
NEUTRON_PASSWORDrequiredStringPassword for user Neutron against Keystone service.
NOVA_PASSWORDrequiredStringPassword for user Nova against Keystone service.
NOVA_ENABLED_FILTERSoptionalString (comm seperated)List of nova scheduling filters. E.g. AvailabilityZoneFilter,ComputeFilter,ComputeCapabilitiesFilter,ImagePropertiesFilter,ServerGroupAntiAffinityFilter,ServerGroupAffinityFilter,AggregateMultiTenancyIsolation,DifferentHostFilter,AggregateInstanceExtraSpecsFilter,NUMATopologyFilter
OS_ADMIN_PASSWORDrequiredStringOpenStack admin password
PUBLIC_NOVA_DOMAINrequirednovaSet (sub-) domain for the nova service.
PUBLIC_NOVA_PORToptional"443"Overwrite the public nova port. Defaults to 8774.
PUBLIC_PLACEMENT_DOMAINrequiredplacementSet (sub-) domain for the placement service.
PUBLIC_PLACEMENT_PORToptional"443"Overwrite the public placememnt port. Defaults to 8778.
PUBLIC_VNC_DOMAINrequiredvncSet (sub-) domain for the vnc service.
VNC_PROXY_PORToptional"443"Overwrite the public vnc port. Defaults to 6080.
OS_INTERFACEoptionalStringOpenStack interface used for internal communication is usually set to admin

Nova-DB

File: overlays/workload/nova-control.yaml

NameKindValuesDescription
MYSQL_DATABASErequirednovaName of service Database
MYSQL_PASSWORDrequiredStringMySQL Password for nova-db
MYSQL_ROOT_PASSWORDrequiredStringMySQL root password
MYSQL_USERrequirednovaName of MySQL user for nova-db

Arguments: Set the port to expose the database within your infrastructure.