Skip to content

Releases: kubernetes-sigs/cluster-api-provider-openstack

Release v0.10.0-rc.1

15 Apr 08:31
v0.10.0-rc.1
f4e5bdf
Compare
Choose a tag to compare
Release v0.10.0-rc.1 Pre-release
Pre-release

What's Changed

  • πŸ› Fix crash on delete with no bastion by @mdbooth in #2017

Full Changelog: v0.10.0-rc.0...v0.10.0-rc.1

Release v0.10.0-rc.0

12 Apr 10:38
v0.10.0-rc.0
4cf3c1b
Compare
Choose a tag to compare
Release v0.10.0-rc.0 Pre-release
Pre-release

What's Changed

  • 🌱 Minor improvements to api validation tests by @mdbooth in #2001
  • πŸ“– Document the change of instanceID in v1beta1 by @pierreprinetti in #2003
  • feat: add configurable loadbalancer network by @oblazek in #1922
  • πŸ› Include more device_owners when looking for a port for floating ip by @bilbobrovall in #1996
  • 🌱 Cleanup security group created by e2e test by @mdbooth in #2010
  • πŸ› Don't try to resolve machine on delete if cluster not ready by @mdbooth in #2006
  • Add opt to use AZ for APISeverLoadBalancer by @dulek in #2004
  • 🌱 Bump k8s dep to 0.29.3 by @mdbooth in #2014
  • ⚠️ Allow explicitly empty volume AZ by @mdbooth in #2008
  • πŸ› Fix idempotent restore when setting ControlPlaneEndpoint by @mdbooth in #2011

New Contributors

Full Changelog: v0.10.0-alpha.1...v0.10.0-rc.0

Release v0.10.0-alpha.1

04 Apr 18:28
v0.10.0-alpha.1
d2d1cb2
Compare
Choose a tag to compare
Pre-release

What's Changed

  • 🌱 Remove legacy v1alpha7 filterconvert utils by @mdbooth in #1992
  • πŸ› Rules are optional in security group rules before v1beta1 by @mdbooth in #2000
  • πŸ› Make floatingIPNetwork a pointer and if there's only one external network use it as default by @bilbobrovall in #1998

Full Changelog: v0.10.0-alpha.0...v0.10.0-alpha.1

Release v0.10.0-alpha.0

02 Apr 17:03
v0.10.0-alpha.0
79fcb6a
Compare
Choose a tag to compare
Pre-release

Breaking API Changes

v0.10.0 is a major update which brings major changes to the API.

v1alpha5 is no longer served

If you are still using v1alpha5, this will not work in v0.10.0. However, for this release only objects are still defined in the CRDs and the code is still present, so as a temporary workaround it is possible to manually edit the CRDs to set versions.served to true for v1alpha5 objects. This is not tested, and we have low confidence that this will work without problems. Some manual effort may be required to check and fix automatically converted objects.

v1alpha6 and v1alpha7 are deprecated

v1alpha6 and v1alpha7 objects will be automatically converted to v1beta during use. This is well tested. We don’t anticipate problems with these conversions.

We will stop serving and testing v1alpha6 in the next release, and v1alpha7 some time after that. You should update to use v1beta1 natively as soon as possible.

v1beta1 is released

v1beta1 marks a major update to the CAPO API. The specific changes from v1alpha7 are documented here: https://cluster-api-openstack.sigs.k8s.io/topics/crd-changes/v1alpha7-to-v1beta1

More than this, though, it marks an intention by the maintainers to stop making breaking changes. The API will continue to evolve, but we will make every effort to do this without introducing more backwards-incompatible changes.

Management cluster changes

Removal of MutatingWebhookConfiguration

CAPO no longer uses a mutating webhook, and its configuration is removed. If you upgrade your management cluster with clusterctl this will be handled correctly. If you do it manually you must ensure you remove the MutatingWebhookConfiguration capo-mutating-webhook-configuration. If you do not you may see errors like the one in #1927.

Minimum management cluster version is now 1.25

v0.10.0 now uses https://kubernetes.io/docs/reference/using-api/cel/ for some API validations, which only became available without a feature gate in 1.25. Consequently we now require the management cluster to be at least k8s 1.25.

Highlighted new features

API Reference documentation

We now automatically publish API reference documentation! The documentation for v1beta1 can be found here: https://cluster-api-openstack.sigs.k8s.io/api/v1beta1/api

Floating IP IPAM Provider

It is now possible to allocate floating IPs for individual machines using the new Floating IP IPAM Provider documented here: https://cluster-api-openstack.sigs.k8s.io/api/v1alpha1/api#infrastructure.cluster.x-k8s.io/v1alpha1.OpenStackFloatingIPPool

Attach them to a machine via the new floatingIPPoolRef in OpenStackMachineSpec: https://cluster-api-openstack.sigs.k8s.io/api/v1beta1/api#infrastructure.cluster.x-k8s.io/v1beta1.OpenStackMachineSpec

Detailed changes

  • 🌱 Import CAPI v1.6.0 by @EmilienM in #1731
  • πŸ› Revert "Move FloatingIP to Bastion spec" by @mdbooth in #1778
  • πŸ› Don't apply worker SG to control plane machines by @stephenfin in #1785
  • ⚠️ Add v1alpha8 by @EmilienM in #1782
  • Remove Tobias and Sean as maintainer by @tobiasgiese in #1793
  • 🌱 Update links in release docs by @lentzi90 in #1798
  • 🌱 Make it possible to use a pre-created volume type in e2e tests by @maxrantil in #1766
  • πŸ› Fix potential panic during instance create by @mandre in #1803
  • ✨ Add flatcar-sysext template to use regular Flatcar images by @tormath1 in #1776
  • πŸ› Move flatcar-sysext to v1alpha8 by @EmilienM in #1812
  • 🌱 Improve method signatures of conversion functions by @mdbooth in #1813
  • ✨ New API for Server Groups by @stephenfin in #1779
  • ✨ New API: OpenStackCluster.Spec.ExternalNetwork by @EmilienM in #1790
  • ✨ Add flags for configuring rate limits by @tobiasgiese in #1815
  • πŸ› Fall back to cluster identityRef in absence of machine identityRef by @stephenfin in #1768
  • πŸ› Fix patching OpenstackMachine's immutable spec during reconcile by @strudelPi in #1807
  • 🌱 change how we register scheme as per capi 1.6 by @kranurag7 in #1797
  • πŸ› fix: skip port deletion when instances have no port by @dulek in #1818
  • CI fixes by @mandre in #1820
  • 🌱 Bump e2e node images to v1.28.5 by @lentzi90 in #1823
  • πŸ› Fix random instance port deletion by @zioc in #1753
  • ✨ Change API for OpenStackMachine.Spec.Image by @EmilienM in #1796
  • 🌱 Bump controller-tools to v0.14.0 by @mdbooth in #1825
  • ✨ Update CI to use OpenStack Bobcat by @EmilienM in #1804
  • ⚠️ Move FloatingIP to Bastion spec by @mdbooth in #1824
  • ✨ Allow AZs to be Omitted at Runtime by @spjmurray in #1769
  • πŸ› Persist API FloatingIP immediately on creation by @mdbooth in #1829
  • ✨ Support BYO dual-stack Network by @MaysaMacedo in #1789
  • ✨ IPAM provider for floating ips by @bilbobrovall in #1763
  • e2e: remove "allow-all-in-cluster-traffic" patch by @EmilienM in #1834
  • πŸ› controllers: do not return a RequeueAfter and an error at the same time by @EmilienM in #1839
  • 🌱 Enhance Tilt integration with CAPO using a ClusterClass template by @maxrantil in #1833
  • πŸ› Fill up OpenStack cluster ReferencedResources with Image ID by @EmilienM in #1845
  • 🌱 Update the dev-test ClusterClass by @lentzi90 in #1848
  • ⚠️ Convert ServerMetadata from a map to a list by @mdbooth in #1828
  • 🌱 Decrease number of machines in e2e tests by @lentzi90 in #1849
  • Migrate Dockerfile to use golang 1.21 to match go.mod in project by @huxcrux in #1857
  • πŸ›Fix a stacktrace in LB logic by removing listener name from an error message when not set by @huxcrux in #1853
  • 🌱 test: bump Flatcar version by @tormath1 in #1858
  • fix: fix the block device type name in doc by @okozachenko1203 in #1865
  • πŸ› api: openstackcluster.status default to false by @EmilienM in #1842
  • πŸ› Adds Kind to ipaddress pool name index by @bilbobrovall in #1864
  • ✨ add TLS configuration flags by @tuminoid in #1867
  • OpenstackFloatingIPPool: Adds popped ip to claimedIPs #1869 by @bilbobrovall in #1870
  • πŸ›Make sure that allowedCidrs lists are compared correctly to avoid patching LB listener when not needed by @huxcrux in #1854
  • πŸ› Prevent the bastion to be removed before it's been disabled by @EmilienM in #1866
  • ✨ Move subnet options to SubnetSpec by @dulek in #1856
  • ✨ Bump Go to 1.22.0 by @EmilienM in #1877
  • πŸ› Fix cluster network cleanup by @dulek in #1880
  • πŸ› Ignore...
Read more

Release v0.9.0

20 Dec 13:31
v0.9.0
c75eba2
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.9.0

Release v0.9.0-rc.1

11 Dec 11:49
v0.9.0-rc.1
c75eba2
Compare
Choose a tag to compare
Release v0.9.0-rc.1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.9.0-rc.0

v0.9.0-rc.0

07 Dec 16:08
v0.9.0-rc.0
f323b4f
Compare
Choose a tag to compare
v0.9.0-rc.0 Pre-release
Pre-release

⚠️🚨DO NOT USE THIS RELEASE🚨⚠️

The removal of FloatingIP from the machine spec is a breaking change which requires a new API version that is not in this release. We will revert this change and introduce v1alpha8 in the next release.

Using this release in production may leave OpenStackMachine objects in an inconsistent state in etcd. Upgrades to or from this release will not be supported.

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.9.0-rc.0

Release v0.8.0

19 Sep 08:29
v0.8.0
686923c
Compare
Choose a tag to compare

⚠️ Major breaking changes since v0.7.z

  • API versions v1alpha3 and v1alpha4 are removed in this version and no longer work at all. Any configurations using v1alpha3 or v1alpha4 MUST be updated to use at least v1alpha5 before upgrading.

    Details of API version changes

  • There are numerous breaking API changes in v1alpha7. Most of these can be updated automatically, but Removal of networks may require manual action prior to upgrade in certain cases. Please read the linked documentation carefully prior to upgrade.

  • The minimum required version of OpenStack is now Queens.

⚠️ Deprecation warning

  • API version v1alpha5 is deprecated in this release. It will no longer be
    served in release 0.9, and removed entirely in a future release.

What's Changed since v0.8.0-beta.0

New Features

Minor changes

Documentation updates

New Contributors

Full Changelog: v0.8.0-beta.0...v0.8.0

Release v0.8.0-beta.0

11 Sep 13:06
v0.8.0-beta.0
ccbaef6
Compare
Choose a tag to compare
Release v0.8.0-beta.0 Pre-release
Pre-release

Changes since v0.8.0-alpha.0

Bugs fixed

  • πŸ› remove subnet from the output in kubectl get by @jichenjc in #1609
  • πŸ› Remove APIServerLoadBalancer.Provider Up Conversion by @ching-kuo in #1642
  • πŸ› Fix application credential support in env.rc by @wwentland in #1646
  • πŸ› Fix Port Leaks by @spjmurray in #1648
  • πŸ› fix port cleanup when using CAPO-created cluster network by @jichenjc in #1651
  • πŸ›Fix failing clusterctl upgrade test by @mdbooth in #1659
  • πŸ›Fix failing clusterctl upgrade test (second attempt) by @mdbooth in #1661
  • πŸ› Fix panic on delete before cluster is initialised by @mdbooth in #1657
  • πŸ› Don't fail when deleting non-existing port by @jichenjc in #1660
  • πŸ› Fix v1alpha6 -> v1alpha7 idempotence by @mdbooth in #1626

New features

Numerous fixes and updates to structured logging

  • 🌱 Migrating /pkg/cloud/services/loadbalancer/loadbalancer.go and /controllers/openstackmachine_controller.go to structured logging by @anastaruno in #1621
  • 🌱Migrate controllers/openstackcluster_controller.go to structured logging by @sophiajwitt in #1630
  • 🌱 Migrate pkg/cloud/services/networking/network.go and router.go to structured logging by @jddaggett in #1624
  • 🌱 Update verbosity levels in instance.go by @skylerxhu in #1635
  • 🌱Structured logging migration of instance.go, service.go, floatingip.go, and securitygroups.go by @skylerxhu in #1631

Minor changes

  • 🌱 ci: bump flatcar to latest stable by @tormath1 in #1607
  • 🌱 Simplify types of Instance.SecurityGroup and Instance.Networks by @mdbooth in #1625
  • 🌱 Bump golangci-lint to 1.54.2 by @mdbooth in #1652

Documentation updates

  • πŸ“– Add link to book in README by @mdbooth in #1602
  • πŸ“– Fix APIVersion to use existing router with OpenStackCluster by @Krast76 in #1638

New Contributors

Full Changelog: v0.8.0-alpha.0...v0.8.0-beta.0

Release v0.8.0-alpha.0

06 Jul 10:43
v0.8.0-alpha.0
e264fd3
Compare
Choose a tag to compare
Pre-release

⚠️ Major breaking changes since v0.7.z

  • API versions v1alpha3 and v1alpha4 are removed in this version and no longer work at all. Any configurations using v1alpha3 or v1alpha4 MUST be updated to use at least v1alpha5 before upgrading.

    Details of API version changes

  • There are numerous breaking API changes in v1alpha7. Most of these can be updated automatically, but Removal of networks may require manual action prior to upgrade in certain cases. Please read the linked documentation carefully prior to upgrade.

  • The minimum required version of OpenStack is now Queens.

⚠️ Deprecation warning

  • API version v1alpha5 is deprecated in this release. It will no longer be
    served in release 0.9, and removed entirely in a future release.

Changes since v0.7.z

⚠️ Breaking Changes

  • Update NetworkStatus ready for dual stack (#1577)
  • Remove ProjectID from PortOpts (#1575)
  • Transform Profile into an interface (#1560)
  • Remove last uses of TenantID and pagination filters (#1563)
  • Replace SubnetParam with SubnetFilter (#1559)
  • Replace SecurityGroupParam with SecurityGroupFilter (#1557)
  • Remove PortOpts.SecurityGroups (#1516)
  • Remove Networks (#1518)
  • Remove v1alpha3 and v1alpha4 (#1527)
  • flatcar: make external-cloud-provider-flatcar the default one (#1522)
  • Deprecate In-tree Cloud Provider (#1514)
  • Remove OpenStackMachineSpec.Subnet (#1504)
  • Add v1alpha7 (#1497)

✨ New Features

  • Allowing update of OpenstackCluster API server fixed IP (#1590)
  • Add additional sec group rule for additionalPorts of LB (#1592)
  • Support propagate uplink status (#1481)
  • Infer port network from subnet (#1519)
  • Add RouterName for use existing router (#1370)
  • Add Octavia OVN Provider Support (#1501)
  • templates: add flatcar template (#1444)
  • Support value specs for Ports (#1452)
  • Add Tags to API-Loadbalancer resources (#1457)
  • add explicit securitycontext to controller (#1461)
  • Add ca-cert flag to supply a default ca certificate for each requests (#1440)
  • Bump CAPI to v1.3.0 (#1406)
  • Bump CAPI to v1.3.1 (#1424)

πŸ› Bug Fixes

  • Fix deadlock when deleting cluster before machines (#1579)
  • Always filter cluster subnets by cluster network ID (#1572)
  • Patch: Backport Provider to v1alpha6 (#1530)
  • Improve env.rc and create_cloud_conf.sh templates (#1381)
  • e2e: refresh packages list before install containerd (#1507)
  • fix: allow using multiattach volume types (#1498)
  • Switch to "4" instead of "ipip" for rules (#1489)
  • Fix Provisioning to Unavailable AZs (#1479)
  • uplift golang and x/net (#1482)
  • Return from reconciler after adding finalizer (#1464)
  • Fix Tilt by adding CAPO label in tilt-provider.json (#1430)
  • fix nil-pointer in initial reconciliation loop with empty status field (#1445)
  • uplift x/net to 0.4.0 (#1427)
  • Update Ubuntu, CirrOS & Amphora image (#1408)
  • do not set failure reason/message when LB not created (#1591)
  • Restore APIServerLoadBalancer.Provider on up-conversion (#1517)
  • fix: fix typo of worker rules and controller rules (#1492)
  • Fix "internal ip doesn't exist (yet)" in e2e logs (#1474)
  • check flavor and reject CPUs less than 2 (#1451)

🌱 Others

  • Add metadata for release 0.8 (#1601)
  • E2e: Unify machine log collection (#1595)
  • E2e: Bump the tested Kubernetes versions (#1594)
  • E2e: Implement LogCollector interface (#1581)
  • Replace github.com/pkg/errors (#1585)
  • dependencies: Bump Go stdlib (#1584)
  • Bump Kubernetes version used in e2e tests (#1571)
  • E2e: Bump clusterctl upgrade to start from v0.7.2 (#1568)
  • Set provider ID through kubelet in ubuntu templates (#1551)
  • Deprecate v1alpha5 (#1561)
  • bump docker distribution to 2.8.2+incompatible (#1562)
  • Remove unused fields from ExternalNetwork (#1555)
  • Remove PortOpts from Network (#1550)
  • Reduce the Bastion status to only fields which are used (#1546)
  • Remove creation of 2 Events for the same event (#1531)
  • ci: bump flatcar to latest major stable (#1524)
  • bump docker to 20.10.24+incompatible (#1525)
  • pull cluster-api@v1.4.1 (#1521)
  • Bump gophercloud to v1.3.0 (#1520)
  • Un-pointer PortOpts.SecurityGroups (#1511)
  • Add fuzzy conversion tests for v1alpha6 (#1509)
  • Bump gophercloud to v1.2.0 (#1463)
  • Add e2e self hosted test (#1428)
  • Bump ginkgo to v2.7.0 and sync with hack/tools (#1460)
  • Use newer containerd in e2e tests (#1456)
  • E2e: Use plain ubuntu cloud image (#1441)
  • Add log to provide more info in case error happen (#1443)
  • Be more robust when checking gophercloud errors in IsNotFound (#1432)
  • e2e: Change logging to avoid use of By (#1417)
  • Remove It block from clusterctl upgrade (#1412)
  • Release 0.7 patches (#1405)
  • Use dl.k8s.io instead of kubernetes-release bucket (#1542)
  • Fix OWNERS_ALIASES syntax error (#1543)
  • Update external approvers (#1536)
  • Update linter to v1.52.2 (#1534)
  • Remove the resource and machine tickers from e2e tests (#1471)
  • Fix boilerplate linter (#1473)
  • Download golangci-lint instead of building it (#1470)
  • Add e2e remediation tests (#1380)
  • Envtest mocks (#1236)

πŸ“– Additionally, there have been 6 contributions to our documentation and book. (#1515, #1503, #1500, #1467, #1454, #1418)

Contributors

Thanks to our first time contributors in this release:

Thanks to @lentzi90, who became a project maintainer during this release.

Thanks to @dulek, who because a project reviewer during this release.

And of course:
Thanks to all our contributors! 😊