Releases: kubernetes-sigs/cluster-api-ipam-provider-in-cluster
v0.1.0
This is the first proper release of the In Cluster IPAM Provider for Cluster API! Thanks to all the contributors that helped getting here, especially @tylerschultz, @christianang, @flawedmatrix, @p-strusiewiczsurmacki-mobica and @rikatz.
⚠️ Breaking Changes since v0.1.0-alpha.3
- The prefix for the deployment resources was changed from
caip-in-cluster
tocapi-ipam-in-cluster
to avoid confusingcaip
as a misspelling of capi (#214) - If you have a running deployment of the IPAM provider, you'll need to undeploy the provider first to avoid two instances running at the same time. The CRDs are not affected by this change, so you can keep them in place to avoid losing data.
- The
ClaimReconciler
inpkg/ipamutil
now passes acontext.Context
to theReleaseAddress
method of aClaimHandler
.
What's Changed since v0.1.0-rc.0
- Ensure IPAddress has a ClusterName label as CAPI resources by @zhanggbj in #220
⚠️ ReleaseAddress should receive a context by @rikatz in #232- 🌱 use registry.k8s.io image in release manifests by @schrej in #231
- 🌱 Bump golangci/golangci-lint-action from 3.7.0 to 4.0.0 by @dependabot in #233
New Contributors
Full Changelog: v0.1.0-rc.0...v0.1.0
v0.1.0-rc.0
⚠️ Breaking Changes
- The prefix for the deployment resources was changed from
caip-in-cluster
tocapi-ipam-in-cluster
to avoid confusingcaip
as a misspelling ofcapi
(#214)
If you have a running deployment of the IPAM provider, you'll need to undeploy the provider first to avoid two instances running at the same time. The CRDs are not affected by this change, so you can keep them in place to avoid losing data.
Notable Changes & Fixes
- Reserved addresses can now be allocated as well by setting
spec.allocateReservedIPAddresses
(#171) - Addresses can now be excluded using
spec.excludeAddresses
(#182) - The generic parts of the reconciliation logic were moved to the
pkg/ipamutil
package and can now be reused by future ipam providers (#203) - We now have official images available at
registry.k8s.io/capi-ipam-ic/capi-ipam-in-cluster-controller
What's Changed
- 🐛 Controller does not allocate reserved addresses by @adobley in #171
- 🌱 Refactor controller tests by @adobley in #173
- 🌱 Bump golangci/golangci-lint-action from 3.6.0 to 3.7.0 by @dependabot in #181
- ✨ Allow address exclusion by @Noroth in #182
- README.md: fix clusterctl init by @chrischdi in #190
- 🌱 Bump docker/login-action from 2.0.0 to 3.0.0 by @dependabot in #187
- 🌱 Bump docker/metadata-action from 4.4.0 to 5.0.0 by @dependabot in #188
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.11.0 to 2.12.1 by @dependabot in #191
- 🌱 Bump actions/checkout from 3 to 4 by @dependabot in #184
- 🌱 Bump github.com/onsi/gomega from 1.27.10 to 1.28.0 by @dependabot in #193
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.12.1 to 2.13.0 by @dependabot in #194
- 🌱 Bump golang.org/x/net from 0.14.0 to 0.17.0 by @dependabot in #195
- 🌱 Add
categories=cluster-api
to the crd by @chrischdi in #197 - 🌱 add rikatz to reviewers by @schrej in #198
- 📖 Update readme by @schrej in #199
- 🌱 Bump github.com/onsi/gomega from 1.28.0 to 1.29.0 by @dependabot in #202
- 🌱 Prepare to use k8s image registry for releases by @rikatz in #166
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.13.0 to 2.13.1 by @dependabot in #205
- 🌱 Bump github.com/onsi/gomega from 1.29.0 to 1.30.0 by @dependabot in #204
- 🌱 improve image building by @schrej in #208
- 🌱 Bump github.com/onsi/ginkgo/v2 from 2.13.1 to 2.13.2 by @dependabot in #209
- 🌱 Bump actions/setup-go from 4 to 5 by @dependabot in #216
- 🌱 Bump sigs.k8s.io/cluster-api from 1.4.1 to 1.6.0 by @alexandrevilain in #219
⚠️ Generic claim reconciler by @p-strusiewiczsurmacki-mobica in #203- 🌱 Bump github.com/onsi/gomega from 1.30.0 to 1.31.1 by @dependabot in #223
- 🌱 Bump sigs.k8s.io/cluster-api from 1.6.0 to 1.6.1 by @dependabot in #224
- 🐛 bump go version for container images to 1.21 by @schrej in #226
⚠️ align prefix of deployments with image name by @schrej in #214- 🌱 Update to current preferred config directory by @stmcginnis in #228
- 🌱 add clusterctl move-hierarchy labels to pools by @schrej in #227
New Contributors
- @Noroth made their first contribution in #182
- @alexandrevilain made their first contribution in #219
- @p-strusiewiczsurmacki-mobica made their first contribution in #203
- @stmcginnis made their first contribution in #228
Full Changelog: v0.1.0-alpha.3...v0.1.0-rc.0
v0.1.0-alpha.3
This release adds a new v1alpha2 API which removes the subnet
, first
and last
fileds in favor of addresses
.
Additions
- New v1alpha2 api types with a simpler interface (#123)
- Claims and pools belonging to a paused cluster are no longer reconciled (#167 #105)
- A new
ipam.cluster.x-k8s.io/skip-validate-delete-webhook
annotation to skip deletion validation (#141) - Show counts of available, in-use and out-of-range addresses in staus (#116 #125)
- Prevent pools with allocated IPs from being deleted (#124)
- Validation that prevents resizing a pool if it would orphan in-use IPs (#125)
- Addresses can now be specified as ranges and CIDRs (#95)
- Gateways can now be omitted for IPv6 pools (#90)
Fixes
- Gateway is now required for IPv4 pools (#118)
- Two claims with the same name, but different namespace no longer cause reconciliation to fail when using GloablInClusterIPPool (#137)
- GlobalInClusterIPPools no longer hand out duplicate IPs for claims in different namespaces (#99)
- IPAddresses won't get deleted until the claim is deleted (#76)
- IPAddresses now have correct finalizers and owner references (#88)
Container Image
Until we have finished the setup for container images in the official registry the image is available here: https://github.com/users/schrej/packages/container/cluster-api-ipam-provider-in-cluster/115023672?tag=v0.1.0-alpha.3
Alternatively you can build it by cloning the repository and running the following commands
make licenses-report
docker buildx build --platform linux/amd64 -t ghcr.io/kubernetes-sigs/cluster-api-ipam-provider-in-cluster:v0.1.0-alpha.3 --build-arg ldflags="$(hack/version.sh)" .
v0.1.0-alpha.2
- Fixes namespaces being ignored when fetching IPAddresses that are part of an InClusterIPPool
- Adds a new GlobalInClusterIPPool that allows to share an address space across namespaces
- Pools can now contain a list of addresses to support non-continuous ranges
v0.1.0-alpha.1
Initial alpha release to facilitate infrastructure provider integration.
This release comes with clusterctl support based on kubernetes-sigs/cluster-api#7288. Since it's not added to the list of built-in providers yet, you'll need to add the following to your ~/.cluster-api/clusterctl.yaml
if you want to install it using clusterctl init --ipam in-cluster
:
providers:
- name: in-cluster
url: https://github.com/kubernetes-sigs/cluster-api-ipam-provider-in-cluster/releases/latest/ipam-components.yaml
type: IPAMProvider