The Flux Operator is a Kubernetes Cluster Operator that you can install to your cluster to create and control a Flux Framework "MiniCluster" to launch jobs to.
Read more, including user and developer guides, and project background in our 💛 Documentation 💛
The basic idea is that we present the idea of a MiniCluster that is a custom resource definition (CRD) that defines a job container (that does not need to have Flux) that (when submit) will create a set of config maps, secrets, and the final Indexed Job that has the pod containers running with Flux. Since this is a batchv1.Job, it will have states that we can track.
And you can find the following here:
- Flux Controllers are under
controllers/flux
for theMiniCluster
- API Spec are under
api/v1alpha2/
also forMiniCluster
- Packages include supporting packages for job conditions (state), if we eventually want that.
- Config includes mostly automatically generated yaml configuration files needed by Kubernetes
And the following external resources might be useful:
- Flux Framework
- Flux RESTful API: provides the interface for submitting jobs, if no command provided to the operator.
- Python SDK: for deploying MiniClusters and port forwarding.
- Flux HPC Examples containers and CRD for the operator to run Flux with HPC workloads (under development)
- Flux Cloud: automation of experiments using the Flux Operator
Note we welcome contributions to code or to suggest features or identify bugs!
You can follow the CITATION.cff (right sidebar in GitHub) to cite, or view the paper directly here A direct (copy paste) citation is the following:
Sochat V, Culquicondor A, Ojea A and Milroy D. The Flux Operator (version 1). F1000Research 2024, 13:203 (https://doi.org/10.12688/f1000research.147989.1)
HPCIC DevTools is distributed under the terms of the MIT license. All new contributions must be made under this license.
See LICENSE, COPYRIGHT, and NOTICE for details.
SPDX-License-Identifier: (MIT)
LLNL-CODE- 842614