Comments (5)
I think @mmlb and @splaspood @markyjackson-taulia can give us an idea about how to do this moving forward not for v0.1.0 (tech preview)
we need to check if the given hardware is ready to run workflows.
In practice, we have to identify if give hardware can be a good candidate for provisioning. I think using the previous workflow is an easy way to do it and it will work for v0.1.0
but moving forward we will have to use a combination of factors.
For not it works mainly because deprovisioning and machine update won't be supported in v0.1.0
. For v0.1.0
the lifecycle is the simples one as possible I presume:
- Create a Cluster via
kubectl apply
- Identify nodes that didn't run a workflow yet because it means they are available
- Run workflow
That's it.
from cluster-api-provider-tinkerbell.
Note, that code above is vulnerable to TOCTOU. In the future we should have some sort of locking mechanism, which will allow us to reserve hardware for a given cluster.
I still think we should specify a list of hardware ID because I don't want to use all my 10 NUCs for ClusterAPI :P but yes! We also need something smarter than a list! xD
from cluster-api-provider-tinkerbell.
Something like this works fine: https://github.com/tinkerbell/cluster-api-provider-tink/blob/b3153920195a2dbdbfe70271f958aaac508b178e/controllers/tinkerbell.go#L128-L216.
from cluster-api-provider-tinkerbell.
Note, that code above is vulnerable to TOCTOU. In the future we should have some sort of locking mechanism, which will allow us to reserve hardware for a given cluster.
from cluster-api-provider-tinkerbell.
I'm reworking #17 right now to make it based on #8, so we can use most likely labels to figure out if hardware is available.
from cluster-api-provider-tinkerbell.
Related Issues (20)
- Remove boilerplate and associated validation code
- can we add CAPT operators to operatorhub.io? HOT 2
- Investigate CAPI upgrades
- Upgrade Go version to 1.19
- Move away from tools.go
- Use `actions/setup-go` instead of our own wrapper HOT 1
- Possible race condition
- Consume Tink v1alpha2 APIs
- how to try capt on real hardware HOT 3
- Default mirror setting missing?
- Add Rufio to the quickstart
- v0.5.0 release
- Same Hardware assigned to multiple TinkerbellMachines when maxUnavailable >= 2 in MachineDeployment HOT 2
- Add Flatcar systemd-sysext how to HOT 1
- Implement retries for BMC interactions
- release process builds a broken infrastructure-components.yaml
- Update how network booting is disabled
- TinkerbellMachine's cannot be deleted when the bound Hardware doesn't exist
- CAPI v1.8.0-beta.0 has been released and is ready for testing
- Question: Is it possible to create a cluster-api cluster in a different namespace than the tinkerbell stack
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-provider-tinkerbell.