|
| 1 | +<!-- START doctoc generated TOC please keep comment here to allow auto update --> |
| 2 | +<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --> |
| 3 | +**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* |
| 4 | + |
| 5 | +- [v1alpha4 compared to v1alpha5](#v1alpha4-compared-to-v1alpha5) |
| 6 | + - [Conversion from v1alpha4 to v1alpha5](#conversion-from-v1alpha4-to-v1alpha5) |
| 7 | + - [API Changes](#api-changes) |
| 8 | + - [`OpenStackCluster`](#openstackcluster) |
| 9 | + - [Managed API LoadBalancer](#managed-api-loadbalancer) |
| 10 | + - [Major Changes to Ports and Networks](#major-changes-to-ports-and-networks) |
| 11 | + - [`OpenStackMachine`](#openstackmachine) |
| 12 | + - [Rename of `status.error{Reason,Message}` to `status.failure{Reason,Message}`](#rename-of-statuserrorreasonmessage-to-statusfailurereasonmessage) |
| 13 | + - [Changes to `rootVolume`](#changes-to-rootvolume) |
| 14 | + |
| 15 | +<!-- END doctoc generated TOC please keep comment here to allow auto update --> |
| 16 | + |
| 17 | +# v1alpha4 compared to v1alpha5 |
| 18 | + |
| 19 | +## Migration |
| 20 | + |
| 21 | + |
| 22 | +All users are encouraged to migrate their usage of the CAPO CRDs from older versions to `v1alpha5`. This includes yaml files and source code. As CAPO implements automatic conversions between the CRD versions, this migration can happen after installing the new CAPO release. |
| 23 | + |
| 24 | +## API Changes |
| 25 | + |
| 26 | +This only documents backwards incompatible changes. Fields that were added to v1alpha5 are not listed here. |
| 27 | + |
| 28 | +### `OpenStackCluster` |
| 29 | + |
| 30 | +#### Managed API LoadBalancer |
| 31 | + |
| 32 | +The fields related to the managed API LoadBalancer were moved into a seperate object: |
| 33 | + |
| 34 | +```yaml |
| 35 | +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 |
| 36 | +kind: OpenStackCluster |
| 37 | +spec: |
| 38 | + managedAPIServerLoadBalancer: true |
| 39 | + apiServerLoadBalancerAdditionalPorts: [443] |
| 40 | +``` |
| 41 | +
|
| 42 | +becomes: |
| 43 | +
|
| 44 | +```yaml |
| 45 | +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha5 |
| 46 | +kind: OpenStackCluster |
| 47 | +spec: |
| 48 | + apiServerLoadBalancer: |
| 49 | + enabled: true |
| 50 | + additionalPorts: [443] |
| 51 | +``` |
| 52 | +
|
| 53 | +### `OpenStackMachine` |
| 54 | + |
| 55 | +#### Major Changes to Ports and Networks |
| 56 | + |
| 57 | +When using Ports it is now possible to specify network and subnet by filter instead of just ID. As a consequence, the relevant ID fields are now moved into the new filter specifications: |
| 58 | + |
| 59 | +```yaml |
| 60 | +ports: |
| 61 | + - networkId: d-e-a-d |
| 62 | + fixedIPs: |
| 63 | + - subnetId: b-e-e-f |
| 64 | +``` |
| 65 | + |
| 66 | +becomes: |
| 67 | + |
| 68 | +```yaml |
| 69 | +ports: |
| 70 | + - network: |
| 71 | + id: d-e-a-d |
| 72 | + fixedIPs: |
| 73 | + subnet: |
| 74 | + id: b-e-e-f |
| 75 | +``` |
| 76 | + |
| 77 | +Networks are now deprecated. With one exception, all functionality of Networks is now available for Ports. Consequently, Networks will be removed from the API in a future release. |
| 78 | + |
| 79 | +The ability of a Network to add multiple ports with a single directive will not be added to Ports. When moving to Ports, all ports must be added explicitly. Specifically, when evaluating the network or subnet filter of a Network, if there are multiple matches we will add all of these to the server. By contrast we raise an error if the network or subnet filter of a Port does not return exactly one result. |
| 80 | + |
| 81 | +`tenantId` was previously a synonym for `projectId` in both network and subnet filters. This has now been removed. Use `projectId` instead. |
| 82 | + |
| 83 | +The following fields are removed from network and subnet filters without replacement: |
| 84 | + |
| 85 | +- status |
| 86 | +- adminStateUp |
| 87 | +- shared |
| 88 | +- marker |
| 89 | +- limit |
| 90 | +- sortKey |
| 91 | +- sortDir |
| 92 | +- subnetPoolId |
| 93 | + |
| 94 | +#### Rename of `status.error{Reason,Message}` to `status.failure{Reason,Message}` |
| 95 | + |
| 96 | +The actual fields were previously already renamed, but we still used the `error` prefix in JSON. This was done to align with CAPI, where these fields were [renamed in v1alpha3](https://cluster-api.sigs.k8s.io/developer/providers/v1alpha2-to-v1alpha3.html#external-objects-will-need-to-rename-statuserrorreason-and-statuserrormessage). |
| 97 | + |
| 98 | +```yaml |
| 99 | +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha4 |
| 100 | +kind: OpenStackMachine |
| 101 | +status: |
| 102 | + errorReason: UpdateError |
| 103 | + errorMessage: Something when wrong |
| 104 | +``` |
| 105 | + |
| 106 | +becomes: |
| 107 | + |
| 108 | +```yaml |
| 109 | +apiVersion: infrastructure.cluster.x-k8s.io/v1alpha5 |
| 110 | +kind: OpenStackMachine |
| 111 | +status: |
| 112 | + failureReason: UpdateError |
| 113 | + failureMessage: Something when wrong |
| 114 | +``` |
| 115 | + |
| 116 | +#### Changes to `rootVolume` |
| 117 | + |
| 118 | +The following fields were removed without replacement: |
| 119 | + |
| 120 | +- `rootVolume.deviceType` |
| 121 | +- `rootVolume.sourceType` |
| 122 | + |
| 123 | +Additionally, `rootVolume.sourceUUID` has been replaced by using `ImageUUID` or `Image` from the OpenStackMachine as appropriate. |
0 commit comments