{"id":36688222,"url":"https://github.com/converged-computing/flux-service","last_synced_at":"2026-01-12T11:16:47.460Z","repository":{"id":272377185,"uuid":"916193656","full_name":"converged-computing/flux-service","owner":"converged-computing","description":"Using Flux Framework to provide a service for running latency tests or other tasks across nodes","archived":false,"fork":false,"pushed_at":"2025-01-14T02:18:17.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-10T14:49:55.438Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/converged-computing.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-13T16:22:54.000Z","updated_at":"2025-01-14T02:18:20.000Z","dependencies_parsed_at":"2025-01-14T03:25:05.436Z","dependency_job_id":"9b35f97b-2103-4803-b7cc-17e26807a260","html_url":"https://github.com/converged-computing/flux-service","commit_stats":null,"previous_names":["converged-computing/flux-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/converged-computing/flux-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Fflux-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Fflux-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Fflux-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Fflux-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/converged-computing","download_url":"https://codeload.github.com/converged-computing/flux-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Fflux-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338970,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T10:58:46.209Z","status":"ssl_error","status_checked_at":"2026-01-12T10:58:42.742Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-12T11:16:47.353Z","updated_at":"2026-01-12T11:16:47.444Z","avatar_url":"https://github.com/converged-computing.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Flux Service\n\nOur specific goal is to be able to run network latency tests across nodes for different cases. A more general goal that this will enable is using Flux will provide a service to run functions or tasks for Kubernetes. The Python library that will be developed should be possible to do the same for any environment.\n\n## Usage\n\nTo install to your cluster, you should create it first! There is an [example](example) provided using kind:\n\n```bash\nkind create cluster --config ./example/kind-config.yaml\n```\n\nAnd for AWS:\n\n```bash\neksctl create cluster --config-file ./example/eks-config-2.yaml \naws eks update-kubeconfig --region us-east-2 --name flux-service-cluster\n```\n\nThen install the daemonset. \n\n```bash\n# make install\nkubectl apply -f ./daemonset-installer.yaml\n```\n\n## How does this work?\n\n1. We use a daemonset and nsenter to enter the init process of the node\n2. We install flux core and sched from conda forge\n3. The rbac / roles and service account given to the daemonset give it permission to list node\n4. With the node addresses, we can prepare a broker configuration\n5. The daemonset launches a script that installs and configures flux\n6. The brokers start on each node!\n\nThe scripts are built into the container, so if you need to update or change something, just do it there.\nNote that a systemd example install is included in [docker](docker) but we cannot use it yet because the conda installs don't support systemd.\n\n\n## Debugging\n\nI've added a script that makes it easy to shell in and debug. You can look at the logs to see the first in the host list - this is the lead broker. In the log above, it's `kind-worker`. Get the pod associated with it:\n\n```bash\n$ kubectl get pods -o wide\nNAME                 READY   STATUS    RESTARTS   AGE     IP           NODE           NOMINATED NODE   READINESS GATES\ninstall-flux-266zk   1/1     Running   0          4m43s   172.18.0.3   kind-worker4   \u003cnone\u003e           \u003cnone\u003e\ninstall-flux-2sqq6   1/1     Running   0          4m43s   172.18.0.5   kind-worker    \u003cnone\u003e           \u003cnone\u003e\ninstall-flux-7d5ps   1/1     Running   0          4m43s   172.18.0.4   kind-worker2   \u003cnone\u003e           \u003cnone\u003e\ninstall-flux-ql9w9   1/1     Running   0          4m43s   172.18.0.6   kind-worker3   \u003cnone\u003e           \u003cnone\u003e\n```\n\nYou can either shell into the associated daemonset pods and run nsenter:\n\n```bash\n# Enter the lead broker pod\nnsenter -t 1 -m bash\n./flux-connect.sh\nflux run -N 2 -n 2 /osu-micro-benchmarks-5.8/mpi/pt2pt/osu_latency\n```\n\nOr use the kubectl node-shell plugin (which does the same)\n\n```bash\nkubectl node-shell kind-worker\n```\n\nInstall the flux operator (outside of the cluster):\n\n```bash\nkubectl apply -f https://raw.githubusercontent.com/flux-framework/flux-operator/refs/heads/main/examples/dist/flux-operator.yaml\n```\n\nCreate a container that will also have OSU benchmarks.\n\n```bash\nkubectl apply -f example/osu.yaml\nkubectl exec -it flux-sample-0-92974 bash\nflux proxy local:///mnt/flux/view/run/flux/local bash\nflux run -N 2 -n 2 /opt/osu-benchmark/build.openmpi/mpi/pt2pt/osu_latency\n```\n\nBoum! Bing badda... boom! 💥\n\n## License\n\nHPCIC DevTools is distributed under the terms of the MIT license.\nAll new contributions must be made under this license.\n\nSee [LICENSE](https://github.com/converged-computing/cloud-select/blob/main/LICENSE),\n[COPYRIGHT](https://github.com/converged-computing/cloud-select/blob/main/COPYRIGHT), and\n[NOTICE](https://github.com/converged-computing/cloud-select/blob/main/NOTICE) for details.\n\nSPDX-License-Identifier: (MIT)\n\nLLNL-CODE- 842614\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconverged-computing%2Fflux-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconverged-computing%2Fflux-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconverged-computing%2Fflux-service/lists"}