Comments (7)
I'd argue for the second pool way may not even want to use a full DHCP pool, depending on what we want to do with un-inventoried nodes.
It could just be a microservice that catches the info, passes it to SMD (or a service that we can use to integrate new nodes into SMD), and shuts the node off via BSS or something like that. I also think that avoiding the node itself running a script avoids a cyclical dependency between a booting node and the inventory system.
from deployment-recipes.
Given the nature of a dhcp request (being a broadcast communication), I'd wonder if we could have separate handlers for giving a mapped to inventory IP address and handling a yet to be mapped IP address.
That would leave us having a very simple DHCP service, and having a standalone service to catch unmapped entries and prep them for SMD or similar.
from deployment-recipes.
I like that idea. Just to be sure I understand, you're suggesting that for any broadcast domain we create two DHCP pools. A pool for known addresses and a different pool for unknown addresses that need to be discovered or probed in some way.
from deployment-recipes.
I suspect the main catch here may be reloading dhcp entries when the config changes for dnsmasq, it accepts a SIGHUP at least: https://thekelleys.org.uk/dnsmasq/docs/dnsmasq-man.html#lbAG
from deployment-recipes.
Once we have a container, I'm pretty sure I can get fast config reloads to work. docker kill --signal=SIGHUP
should do the trick.
from deployment-recipes.
create a dedicated ochami plugin that interacts with the inventory system and some form of IPAM, (either within the coredhcp plugin or within ochami)
I think this is a feasible idea. Since SMD is managing all of the node information, it makes sense to have it be the single source of truth for DHCP configuration as well. Long term, I think having a plugin for coredhcp that, e.g., provides a RESTful API for updating/deleting/adding DHCP configuration that SMD can push to when changes occur is desirable. That way, we don't have to reimplement DHCP and we are still following the microservice architecture. At current, I am not sure if this would be possible with coredhcp, but the concept of being able to configure DHCP via an API without having to reimplement DHCP seems ideal here.
I'm aware that kea already provides a RESTful API for DHCP, but I've heard from colleagues administering it in CSM that it's not great to work with.
from deployment-recipes.
Assigning @njones-lanl who has been working on a dnsmasq version for SI that will be good enough for now. We can revisit the plugin-based approach in the future.
from deployment-recipes.
Related Issues (20)
- [RFD] adding secrets to services in docker compose (without using docker swarm) HOT 3
- Add example Helm charts
- [DEV] Create the end-to-end workflow for bootstrapping credentials for an SI cluster HOT 1
- [DEV] Identify, expose, and describe the API routes that will be supported for the Supercomputing Institute
- [BUG] Authorization requests sometimes returning 401 when running recipes HOT 1
- [FEATURE] TLS cert renewal unit tests
- [FEATURE] Krakend unit tests
- [DEV] create private network for opaal and hydra HOT 1
- [DEV] Create a release pipeline for the docker-compose files needed to run a HPC cluster
- [BUG] Instructions for "To run services with JST authentication enabled:" lack a verb and even with up fail HOT 5
- [BUG] docker compose -f ochami-services.yml -f hydra.yml -f opaal.yml -f ochami-krakend-ce.yml up fails port in use
- [DEV] split Helm values file into multiple files to support multiple Kubernetes environments
- Make dnsmasq itself mount the hostfiles read-only
- Upgrade postgres to a supported version (16?)
- [BUG] dnsmasq access token to smd expires and gets stale
- [BUG] quickstart should qualify containers from docker.io for podmans benefit HOT 1
- Github actions hangup when read string from /dev/urandom in quickstart/generate-configs.sh
- [BUG] `boot-filename` option not getting served on fresh installations HOT 1
- Step 5 of Quickstart Guide: Curl Command Should Curl on Port 8443
- [BUG] bash_functions.sh causes issues on a Github Runner because it runs in interactive mode.
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 deployment-recipes.