Helm charts for the FNNDSC and the ChRIS Project.
Chart Name | License | Chart Version | App Version | Description |
---|---|---|---|---|
fnndsc/chris |
MIT | Open-source platform for medical compute. | ||
fnndsc/pfcon |
MIT | Standalone remote compute resource service for ChRIS backend. | ||
fnndsc/orthanc |
GPLv3+ | Open-source PACS server. https://www.orthanc-server.com/ | ||
fnndsc/ohif |
MIT | Web DICOM viewer. https://ohif.org/ | ||
fnndsc/linkerd-nodeport-workaround |
MIT | Workaround for using Linkerd with NodePort services. |
If you already have Docker installed, the easiest way to obtain k8s is KinD. KinD installation instructions are here: https://kind.sigs.k8s.io/docs/user/quick-start/
Development scripts are defined in testing/justfile
, which uses the just syntax.
You should install just
: https://github.com/casey/just#installation
Then you can run things like:
git switch dev
helm dependency update ./charts/chris
cd testing
just kind
just up
just wait
just test
Optionally, to use chrisomatic:
just chrisomatic
Then, graceful tear down:
just down
just unkind
Editing pfcon's templates can be tricky because it's a dependency from the same repo as chris. Here's a workaround:
cd charts/chris/charts
rm ./pfcon-*.tgz
ln -sv ../../pfcon
To publish your changes, increase version
in charts/pfcon/Chart.yaml
then merge the dev
branch into master
. Once the release is created by GitHub Actions, increase the version
and
pfcon dependency version in charts/chris/Chart.yaml
then update charts/chris/Chart.lock
by running
cd charts/chris
rm charts/pfcon
helm dependency update .
Finally, push to master once more.
Optionally, a Kubernetes observability stack can be deployed into the Kind cluster. You can choose between OpenObserve or a Grafana-based stack.
OpenObserve is much more efficient than Grafana. I also have log collection set up for OpenObserve. However, OpenObserve's visualization and data querying is not as good as Grafana. It is recommended to use OpenObserve if you (a) need to aggregate and search through logs, and/or (b) your workstation has less than or equal to 8 CPUs, 16GB RAM.
Logs are collected using Vector and visualized using OpenObserve. To run the observability stack and open the dashboard, run
just openobserve
Log in with the email dev@babymri.org
password chris1234
.
Alternatively, you can get logs from the command-line using the just olog [POD_NAME_LABEL]
command.
Examples:
just olog pfcon
just olog chris-heart
Two releases of Vector are made:
- "Agent" mode which runs on every node to collect logs and host metrics
- "Stateless-Aggregator" which scrapes Kubelet
/metrics/cadvisor
These logs and metrics are shipped to OpenObserve.
TODO