{"id":36688075,"url":"https://github.com/converged-computing/fluence-kubectl","last_synced_at":"2026-01-12T11:16:39.449Z","repository":{"id":218154007,"uuid":"745360982","full_name":"converged-computing/fluence-kubectl","owner":"converged-computing","description":"kubectl plugin for the Fluence scheduler flux-framework/flux-k8s","archived":false,"fork":false,"pushed_at":"2024-01-21T23:33:31.000Z","size":43,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-10T14:50:09.643Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","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":"2024-01-19T07:01:11.000Z","updated_at":"2024-01-19T07:03:05.000Z","dependencies_parsed_at":"2024-06-19T16:17:08.140Z","dependency_job_id":"a1961536-7be7-4e21-a1fb-4b565f9d6f62","html_url":"https://github.com/converged-computing/fluence-kubectl","commit_stats":null,"previous_names":["converged-computing/fluence-kubectl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/converged-computing/fluence-kubectl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Ffluence-kubectl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Ffluence-kubectl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Ffluence-kubectl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Ffluence-kubectl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/converged-computing","download_url":"https://codeload.github.com/converged-computing/fluence-kubectl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/converged-computing%2Ffluence-kubectl/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:39.370Z","updated_at":"2026-01-12T11:16:39.435Z","avatar_url":"https://github.com/converged-computing.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kubectl fluence\n\nThis repository implements a single kubectl plugin for interacting with the fluence scheduler.\nThis is currently intended to help with debugging and development.\n\n## Usage\n\n### Deploy Fluence\n\nYou will need to deploy Fluence with the following flag for `scheduler.enableExternalService=true`. See\nthe [kind-config.yaml](example/kind-config.yaml) for how to deploy a kind cluster with ingress.\n\n```bash\nhelm install \\\n  --set scheduler.image=ghcr.io/vsoch/fluence:latest \\\n  --set scheduler.enableExternalService=true \\\n  --set scheduler.sidecarimage=ghcr.io/vsoch/fluence-sidecar:latest \\\n        schedscheduler-plugins as-a-second-scheduler/\n```\n\n#### Google Cloud\n\nNote that Google Cloud will require an extra command to expose the service. I find that creating the cluster like this works:\n\n```bash\nGOOGLE_PROJECT=myproject\ngcloud container clusters create test-cluster \\\n    --threads-per-core=1 \\\n    --placement-type=COMPACT \\\n    --num-nodes=6 \\\n    --region=us-central1-a \\\n    --project=${GOOGLE_PROJECT} \\\n    --enable-network-policy \\\n    --tags=test-cluster \\\n    --enable-intra-node-visibility \\\n    --machine-type=c2d-standard-8\n```\n\nHere is how to expose the port for ingress (you typically only need to do this once for an entire project):\n\n```bash\ngcloud compute firewall-rules create test-cluster --allow tcp:4242\n```\n\nYou will need to use `kubectl get pods -o wide` to see the physical node fluence is running on, and then\nget the ip address for that node with `kubectl get nodes -o wide`.\n\n```bash\nkubectl fluence --host 34.121.134.15\n```\n```console\n Resource Graph Summary                \n        NODES  CORES/NODE  MEMORY/NODE \n            5           3        27648 \n            1           3        26624 \n TOTAL      6           6        54272 \n```\n\nThat's the first glimpose of having one node with a slightly different type (I wonder why that is)? Possibly\nthe control plane has less memory available? And of course cleanup:\n\n```bash\ngcloud container clusters delete test-cluster --region=us-central1-a\n```\n\nNote that I haven't gotten it to work on Google Cloud - I am not sure why.\n\n### Cluster Resources\n\nA simple `kubectl fluence` will show cluster resources.\n\n```console\n Resource Graph Summary      \n        COUNT  CORES  MEMORY \n            1     10   30720 \n TOTAL      1     10   30720 \n```\n\n### Development\n\nNote that for this setup if you are developing locally with kind, you will need to enable the ingress. Here is `kind-config.yaml`\n\n```yaml\nkind: Cluster\napiVersion: kind.x-k8s.io/v1alpha4\nnodes:\n- role: control-plane\n  kubeadmConfigPatches:\n  - |\n    kind: InitConfiguration\n    nodeRegistration:\n      kubeletExtraArgs:\n        node-labels: \"ingress-ready=true\"\n  extraPortMappings:\n  - containerPort: 4242\n    hostPort: 4242\n    protocol: TCP\n```\n\n### Make Protocol Buffers\n\nInstall the needed tools to your local bin (already on the PATH for the development container):\n\n```bash\nmake protoc\n```\n\nIf you aren't in the dev container:\n\n```\nexport PATH=$PATH:$PWD/bin\n```\n\nThen compile:\n\n```bash\nmake proto\n```\n\n### Build Plugin\n\nTo install the plugin from GitHub:\n\n```bash\ngo get github.com/converged-computing/fluence-kubectl\n```\n\nOr build it locally. This assumes you have a working `KUBECONFIG`\n\n```bash\nmake\n```\n\nThis will generate the binary, and you'll need to copy it into somewhere on the path to access.\n\n```bash\nsudo cp ./kubectl-fluence /usr/local/bin\n```\n\n### Shell Completion\n\nFor shell completion, copy [kubectl_complete-fluence](kubectl_complete-fluence) also somewhere on your\npath and make it executable.\n\n```bash\n/usr/local/bin ./kubectl_complete-fluence\nsudo cp ./kubectl_complete-fluence /usr/local/bin\n```\n\n### Build and Install\n\nTo do both of the above (and warning, the install requests sudo!)\n\n```bash\nmake install\n```\n\n### Uninstall\n\nTo uninstall, just delete both.\n\n```bash\nsudo rm -rf /usr/local/bin/kubectl-fluence /usr/local/bin/kubectl_complete-fluence\n```\n\n## TODO\n\n- I don't like that the grpcs are now shared across modules and projects - I'd like a simple strategy (maybe submodules) that can get them from the same source instead.\n- We need a way to get group name / metadata directly from fluxion.\n- We can add the Info/Stats exposed endpoints to the fluxion GRPC to get better views of the cluster (stats)\n\n## Thank You\n\n - This plugin is based on logic from [kubernetes/sample-cli-plugin](https://github.com/kubernetes/sample-cli-plugin)\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","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconverged-computing%2Ffluence-kubectl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fconverged-computing%2Ffluence-kubectl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fconverged-computing%2Ffluence-kubectl/lists"}