All Projects → soundcloud → Haskell Kubernetes

soundcloud / Haskell Kubernetes

Licence: mit
Haskell bindings to the v1 Kubernetes api, generated via swagger-codegen

Programming Languages

haskell
3896 projects

haskell-kubernetes

This project contains haskell bindings to the v1 Kubernetes api generated via swagger-codegen. The client and (mock) server generated use the servant project, thanks to the work of Masahiro Yamauchi!

About the Generated Code

  • all fields are strict
  • aeson instances are generated for each type with the appropriate keys
  • Lenses are generated for every field, with plain names for each lens (e.g. min, object, etc.). So be careful with unqualified imports.
  • Fields specified as "not required" (missing a "required" field in the swagger description) are represented as a Maybe, even when that field refers to a list (e.g. Maybe [Foo]). This is done for consistent JSON parsing of the generated aeson instances.
  • In lieu of suitable Default instances, builder methods are exported. Each datatype has a corresponding mk{{datatype}} method to construct it, requiring only required fields.
  • API coverage is almost full. As servant-0.7.1 lacks support for HEAD and OPTIONS endpoints, those endpoints were excluded from the client and server implementation (any related datatypes are still generated).
  • client bindings were only spot tested (PR's welcomed!).
  • the mock-server was only spot tested (PR's welcomed!).

Dependencies

haskell-kubernetes depends on the following software:

Documentation

In addition to the README (this file), there is a directory of additional documentation:

Versioning

haskell-kubernetes adheres to Semantic Versioning 2.0.0. If there is a violation of this scheme, report it as a bug.Specifically, if a patch or minor version is released and breaks backward compatibility, that version should be immediately yanked and/or a new version should be immediately released that restores compatibility. Any change that breaks the public API will only be introduced at a major-version release. As a result of this policy, you can (and should) specify any dependency on by using the Pessimistic Version Constraint with two digits of precision.

Licensing

See the LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].