Backend for ClusterCockpit Monitoring Framework. GitHub Mirror
Go to file
2022-01-10 16:19:43 +01:00
.github/workflows Add frontend as submodule; Update README.md 2021-10-26 10:26:39 +02:00
api add cli option for generating a JWT; simplify templates 2022-01-10 16:14:54 +01:00
auth add cli option for generating a JWT; simplify templates 2022-01-10 16:14:54 +01:00
config renamed submodule 2022-01-10 16:17:40 +01:00
frontend@cc48461a81 Add more views 2021-12-09 16:27:48 +01:00
graph renamed submodule 2022-01-10 16:17:40 +01:00
metricdata continue working on non-node scoped metrics 2022-01-10 16:13:40 +01:00
schema continue working on non-node scoped metrics 2022-01-10 16:13:40 +01:00
templates add cli option for generating a JWT; simplify templates 2022-01-10 16:14:54 +01:00
utils renamed submodule 2022-01-10 16:17:40 +01:00
.env use token from cluster.json 2021-12-20 10:49:46 +01:00
.gitignore Add frontend as submodule; Update README.md 2021-10-26 10:26:39 +02:00
.gitmodules renamed submodule 2022-01-10 16:17:40 +01:00
go.mod update go.mod and go.sum 2022-01-07 09:54:12 +01:00
go.sum add cli option for generating a JWT; simplify templates 2022-01-10 16:14:54 +01:00
gqlgen.yml all schemas new 2021-12-17 15:49:22 +01:00
init-db.go continue working on non-node scoped metrics 2022-01-10 16:13:40 +01:00
LICENSE Initial checkin. 2019-04-29 10:21:48 +02:00
README.md update go.mod and go.sum 2022-01-07 09:54:12 +01:00
server.go add cli option for generating a JWT; simplify templates 2022-01-10 16:14:54 +01:00

ClusterCockpit with a Golang backend

DOES NOT WORK WITH CURRENT FRONTEND

Build

Create your job-archive accoring to this specification. At least one cluster with a valid cluster.json file is required. Having no jobs in the job-archive at all is fine. You may use the sample job-archive available for download in cc-docker/develop.

Run server

# The frontend is a submodule, so use `--recursive`
git clone --recursive git@github.com:ClusterCockpit/cc-jobarchive.git

# Prepare frontend
cd ./cc-jobarchive/frontend
yarn install
yarn build

cd ..
go get
go build

# The job-archive directory must be organised the same way as
# as for the regular ClusterCockpit.
ln -s <your-existing-job-archive> ./var/job-archive

# Create empty job.db (Will be initialized as SQLite3 database)
touch ./var/job.db

# This will first initialize the job.db database by traversing all
# `meta.json` files in the job-archive. After that, a HTTP server on
# the port 8080 will be running. The `--init-db` is only needed the first time.
./cc-jobarchive --init-db --add-user <your-username>:admin:<your-password>

# Show other options:
./cc-jobarchive --help

Configuration

A config file in the JSON format can be provided using --config to override the defaults. Look at the beginning of server.go for the defaults and consequently the format of the configuration file.

Update GraphQL schema

This project uses gqlgen for the GraphQL API. The schema can be found in ./graph/schema.graphqls. After changing it, you need to run go run github.com/99designs/gqlgen which will update graph/model. In case new resolvers are needed, they will be inserted into graph/schema.resolvers.go, where you will need to implement them.

TODO

  • Documentation
  • Write more TODOs
  • Caching
  • Generate JWTs based on the provided keys