Skip to main content

OpenStack Cloud Provider

To enable the OpenStack cloud provider, besides setting the name as openstack, there are specific configuration options that must be set. The OpenStack configuration options are grouped into different sections provided in an example below.

cloud_provider:
name: openstack
openstackCloudProvider:
global:
username: xxxxxxxxxxxxxx
password: xxxxxxxxxxxxxx
auth-url: https://1.2.3.4/identity/v3
tenant-id: xxxxxxxxxxxxxx
domain-id: xxxxxxxxxxxxxx
load_balancer:
subnet-id: xxxxxxxxxxxxxx
block_storage:
ignore-volume-az: true
route:
router-id: xxxxxxxxxxxxxx
metadata:
search-order: xxxxxxxxxxxxxx

If you are enabling the OpenStack cloud provider in Rancher the configurations must be nested under the rancher_kubernetes_engine_config directive in the cluster config YAML file. See here for more information on the Rancher configuration file structure.

Overriding the hostname

The OpenStack cloud provider uses the instance name (as determined from OpenStack metadata) as the name of the Kubernetes Node object, you must override the Kubernetes name on the node by setting the hostname_override for each node. If you do not set the hostname_override, the Kubernetes node name will be set as the address, which will cause the OpenStack cloud provider to fail.

OpenStack Configuration Options

The OpenStack configuration options are divided into 5 groups.

  • Global
  • Load Balancer
  • Block Storage
  • Route
  • Metadata

Global

These are the options that are available under the global directive.

OpenStack's Global Configuration OptionsTypeRequired
auth_urlstring*
usernamestring*
user-idstring*
passwordstring*
tenant-idstring*
tenant-namestring
trust-idstring
domain-idstring
domain-namestring
regionstring
ca-filestring

Load Balancer

These are the options that are available under the load_balancer directive.

OpenStack's Load Balancer Configuration OptionsTypeRequired
lb-versionstring
use-octaviabool
subnet-idstring
floating-network-idstring
lb-methodstring
lb-providerstring
manage-security-groupsbool
create-monitorbool
monitor-delayint* if create-monitor is true
monitor-timeoutint* if create-monitor is true
monitor-max-retriesint* if create-monitor is true

Block Storage

These are the options that are available under the block_storage directive.

OpenStack's Block Storage Configuration OptionsTypeRequired
bs-versionstring
trust-device-pathbool
ignore-volume-azbool

Route

This is the option that is available under the route directive.

OpenStack's Route Configuration OptionTypeRequired
router-idstring

Metadata

These are the options that are available under the metadata directive.

OpenStack's Metadata Configuration OptionsTypeRequired
search-orderstring
request-timeoutint

For more information of OpenStack configurations options please refer to the official Kubernetes documentation.