Git Product home page Git Product logo

k8cc's People

Contributors

mbrt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

btw-i-use cnb0

k8cc's Issues

Split the api-gateway away from the controller

Having the api-gateway in the same executable as the controller is dirty, because one cannot really do without it. For security purposes an admin could get rid of the api gateway and ask users to create their leases through kubectl (so authenticated).
The plan is to split the api-gateway away from the controller and let the first create distcc-lease objects for the second, once #8 is implemented.

Replace go-kit/log with glog in controller

Kubernetes controllers use glog. We are currently using go-kit log. This makes the controller logs pretty crappy because two different formats are used at the same time.

We should therefore use go-kit log in the api-server only, and not in the controllers.

create Service from the operator

At the moment the operator requires the user to create the service used by distcc themselves. It would be nice if it does it automatically

Introduce distcc-lease CRD

Right now the fact that a user is leasing a distcc is encoded into the distcc CRD state. The state is edited by the controller, after a user asks for a lease at the API server. This is not very clean and also prevents to split the controller from the API gateway. We should instead implement something similar to the ingress resource, so split off a distcc-lease from the distcc resource.

Port to go-kit 0.7

The new package provides a code generator that should make the maintainability of the service easier

About Contribution

Hi @mbrt ,

I am looking for some tool that can distribute compilation/build work to multiple servers. I found distcc first, which was quite an option but I want it more "transparent"; as the result, I googled distcc with kubernetes, and found this project.

I wonder what the state of k8cc is now. If it is not totally obsoleted/deprecated, I would like to help out with this project.

Thanks in advance.

Add CRD for entrypoint POD

We need a pod with sshd where a user can rsync their sources and compile with the distcc cluster. We need to determine how to expose it easily with a service. Maybe a node port?

It's still unclear how the user will get the compiled application back. NFS seems a bit too complicated. Maybe another rsync?

Add metrics to distcc

We want to have insights on how much resources are used by distcc containers, and for that there's heapster. We also want to correlate these with how long objecst take to compile. We should add a sidecar container that exposes prometheus metrics for that.

Add unit tests to the controllers

Kubernetes code generator provides some mocks that we can use to test the operators. It would be nice to add some unit tests there, because there is quite some logic there at the moment.

Truncate returned times in REST replies to seconds

We currently have this kind of replies for leases:

{
    "lease": {
        "expiration": "2017-12-21T18:11:31.614953389+01:00",
        "hosts": ["distcc-master-5.distcc-master", "distcc-master-6.distcc-master"]
    }
}

Note the ugly expiration timestamp. We should truncate it to seconds (e.g. 2017-12-21T18:11:31+01:00).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.