Giter Site home page Giter Site logo

Comments (6)

timothysc avatar timothysc commented on June 6, 2024 1

It's fine be me however you want to break down the work. I figured there should be multiple PRs for this, and it's pretty thorny. I would probably start simple, and do a transformation 1st. We will need some means of getting meta-data(plugin type) out 1st, and I would probably start there. How do we load and get the meta-data to switch on type easily, without having to transform the whole thing.

FWIW, it's fine to have multiple PRs reference a single issue, just create a checklist and once the checklist is done, close the issue.

from sonobuoy.

timothysc avatar timothysc commented on June 6, 2024

@hausdorff @jessicayuen - Where should I log and track progress of a golang interface library.

https://github.com/ksonnet/ksonnet ?

from sonobuoy.

timothysc avatar timothysc commented on June 6, 2024

stretch goal would be to replace the plugin semantics.

from sonobuoy.

hausdorff avatar hausdorff commented on June 6, 2024

@timothysc We've just transitioned ksonnet/ksonent to use go-jsonnet (rather than the cgo) language bindings, so I think we're ready to talk about this whenever you are.

from sonobuoy.

timothysc avatar timothysc commented on June 6, 2024

@chuckha this may flip in priority to overtake the interface library... sorry... I know, but there is good reason.

from sonobuoy.

chuckha avatar chuckha commented on June 6, 2024

I had a couple of thoughts on this ticket over the weekend:

This ticket is really trying to get at two things and I think we should break it up as such.

Formalize Plugin Spec

Right now a plugin is required to provide metadata (driver, resultType, etc) and provide a PodSpec. The driver implementation will use the appropriate Kubernetes resource (Pod/Daemonset) and use the provided PodSpec as well as create a ConfigMap with some metadata.

The plugin definition is not a valid Kubernetes resource, but it would be nice if it were. We can fit a plugin definition into the schema of Kubernetes resources, but we cannot know all the values until runtime. This suggest templating.

Work Proposal

Extract the parts of the Go that generate ConfigMaps, Pods & Daemonsets (from a plugin definition) and turn it into a Go template that gets evaluated at runtime. We should move the metadata information from the YAML into labels or annotations on the plugin Resources.

This will also require a bit of reshuffling of the plugin logic.

Ksonnet

The second part of this work is taking the template we create and using ksonnet to define the resources. We can replace the formalized templates we made above with ksonnet and evaluate the ksonnet to generate the Kubernetes resources at runtime.

from sonobuoy.

Related Issues (20)

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.