Comments (8)
Currently this is only possible by explicitly specifying which ranges should be used. In this case by writing
addresses:
- 10.10.10.2
- 10.10.10.4-10.10.10.255
That's not a great way of course. We can consider adding a exclude
or reserved
field to make this easier.
from cluster-api-ipam-provider-in-cluster.
That would be nice and also increase the readability of the configuration. Also makes things easier, if you for instance rather intend to provide a CIDR block instead of ranges.
from cluster-api-ipam-provider-in-cluster.
Hello @schrej I would like to take this up and want to start my contribution journey. Can you please specify the exact location where the change needed? Also it will be helpful if you give me some working solution adn explain the issue in detail
Thank you!
from cluster-api-ipam-provider-in-cluster.
/assign
from cluster-api-ipam-provider-in-cluster.
Hey @Sajiyah-Salat, happy to hear that!
First, you'll need to extend the InClusterIPPoolSpec with a new string list field to list excluded addresses and ranges. I'd call it exclude
or something similar.
Then you need to update the PoolSpecToIPSet function in the internal/poolutil
package to remove any addresses or ranges listed in the excluded
field.
Finally a few tests to verify that the feature works as intended would be great!
I hope that helps you to get started.
from cluster-api-ipam-provider-in-cluster.
Wouldn't be helpful to add a name field in exclude
?
something similair to this:
exclude:
- name: ci-workers
address: 10.10.10.5-10.10.10.15
- name: dhcp
address: 10.10.10.4
from cluster-api-ipam-provider-in-cluster.
Not a big fan of that.
Imo you only need a name or a description if you have a lot of exclusions. And in that case I'd argue that you should size down your pool or specify usable addresses as ranges.
from cluster-api-ipam-provider-in-cluster.
@schrej I've seen that the assignment was removed. I could take over here. Apart from what you have mentioned, I guess the webhook validation also has to be updated, right?
from cluster-api-ipam-provider-in-cluster.
Related Issues (20)
- Addressing downscaling pools with addresses in range HOT 6
- IPAddressClaim controller should detect cluster paused consistently HOT 1
- clusterctl move fails because of delete webhook
- Claims with cluster label should not be reconciled when cluster cannot be retrieved
- Adopt the CNCF CLA bot, merge bot and Kubernetes PR commands/bots.
- Controller shouldn't allocate IP addresses that are "reserved" for the subnet HOT 4
- Gateway should be validated to be within inferred subnet when pool is IPv4 HOT 4
- The provider configuration to add to clusterctl.yaml is wrong HOT 1
- :bug: GlobalInClusterIPPool does not guarantee the unique IP across multiple k8s namespaces HOT 1
- Misconfigured webhooks with the new api version HOT 3
- Claims that are stuck waiting for an address when a pool has no free addresses should be re-reconciled when addresses become available HOT 3
- clusterctl move fails due to IPAddresses Exists HOT 4
- clusterctl init fails if wrong version of cert-manager is already installed HOT 2
- in a "clusterctl move" the IPAM resources are not migrated to the new cluster HOT 3
- unknown field "spec.excludedAddresses" HOT 6
- ipam provider does not support capi v1.6.0 HOT 2
- Any plan to cut a v0.1.0 release? HOT 4
- Add support for IPAddressClaim spec.clusterName once CAPI 1.8 is released HOT 1
- Clusterctl move not moving globalinclusterippools
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cluster-api-ipam-provider-in-cluster.