|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// * installing/installing_openstack/installing-openstack-cloud-config-reference.adoc |
| 4 | +// TODO: GitHub link clearance. |
| 5 | + |
| 6 | +:_content-type: CONCEPT |
| 7 | +[id="nw-openstack-external-ccm_{context}"] |
| 8 | += The OpenStack Cloud Controller Manager |
| 9 | + |
| 10 | +In {product-title} 4.12, clusters that run on {rh-openstack-first} are switched from the legacy OpenStack cloud provider to the external OpenStack Cloud Controller Manager (CCM). This change follows the move in Kubernetes from in-tree, legacy cloud providers to external cloud providers that are implemented by using the link:https://kubernetes.io/docs/concepts/architecture/cloud-controller/[Cloud Controller Manager]. |
| 11 | + |
| 12 | +To preserve user-defined configurations for the legacy cloud provider, existing configurations are mapped to new ones as part of the migration process. It searches for a configuration called `cloud-provider-config` in the `openshift-config` namespace. |
| 13 | + |
| 14 | +NOTE: The config map name `cloud-provider-config` is not statically configured. It is derived from the `spec.cloudConfig.name` value in the `infrastructure/cluster` CRD. |
| 15 | + |
| 16 | +Found configurations are synchronized to the `cloud-conf` config map in the `openshift-cloud-controller-manager` namespace. |
| 17 | + |
| 18 | +// To synchronize the configuration to a different namespace, you can override the default `openshift-cloud-controller-manager` namespace by passing the name of the namespace with the `--namespace` flag to the operator binary. |
| 19 | + |
| 20 | +As part of this synchronization, the OpenStack CCM Operator alters the new config map such that its properties are compatible with the external cloud provider. The file is changed in the following ways: |
| 21 | + |
| 22 | +* The `[Global] secret-name`, `[Global] secret-namespace`, and `[Global] kubeconfig-path` options are removed. They do not apply to the external cloud provider. |
| 23 | +
|
| 24 | +* The `[Global] use-clouds`, `[Global] clouds-file`, and `[Global] cloud` options are added. |
| 25 | +
|
| 26 | +* The entire `[BlockStorage]` section is removed. External cloud providers no longer perform storage operations. Block storage configuration is managed by the Cinder CSI driver. |
| 27 | +
|
| 28 | +Additionally, the CCM Operator enforces a number of default options. Values for these options are always overriden as follows: |
| 29 | + |
| 30 | +[source,txt] |
| 31 | +---- |
| 32 | +[Global] |
| 33 | +use-clouds = true |
| 34 | +clouds-file = /etc/openstack/secret/clouds.yaml |
| 35 | +cloud = openstack |
| 36 | +... |
| 37 | +
|
| 38 | +[LoadBalancer] |
| 39 | +use-octavia = true |
| 40 | +enabled = true <1> |
| 41 | +---- |
| 42 | +<1> If the network is configured to use Kuryr, this value is `false`. |
| 43 | + |
| 44 | +The `clouds-value` value, `/etc/openstack/secret/clouds.yaml`, is mapped to the `openstack-cloud-credentials` config in the `openshift-cloud-controller-manager` namespace. You can modify the {rh-openstack} cloud in this file as you do any other `clouds.yaml` file. |
0 commit comments