mvysny / shepherd

Build & run apps automatically
1 stars 0 forks source link

Java API library #19

Closed mvysny closed 1 year ago

mvysny commented 1 year ago

Create a Java API library which gives complete access and control over Shepherd via a lovely Java API.

A Shepherd Admin will use this library; maybe a CLI tool at the beginning, and later a Vaadin UI tool. Vaadin UI may run outside of Kubernetes or from within Kubernetes - investigate both options. Maybe simpler is to start with the outside of Kubernetes for now, since shepherd scripts are also designed to run from outside ot Kubernetes.

To ease the development of Shepherd Admin, the library should also work with fake backend, where everything would be faked - kubernetes, jenkins, projects. The library will not even access the filesystem (or perhaps create a dummy one in /tmp ).

If the Admin runs outside of Kubernetes then https may be tricky. But that might be solvable by some clever kubernetes ingress rule somehow "breaking out of kubernetes" and redirecting to an app running on host. But that's for later.

mvysny commented 1 year ago

Created at https://github.com/mvysny/shepherd-java-client

mvysny commented 1 year ago

Basis of the project is created; tickets have been created to implement the remaining functionality. I'll update README.