Commit Graph

12 Commits

Author SHA1 Message Date
Fabrizio Ferrai
4ad58156b7
Update to Kubernetes 1.14.3 (#72) 2019-07-30 10:25:00 +03:00
Fabrizio Ferrai
805b432df2
API v2 (#57)
This ports the conversion script from Python to Haskell (fix #7)

The main reasons for this port are that:
- the Python script was really hard to maintain for reasons like 
  "converting from Swagger to Dhall is interleaved with string formatting"
- in Haskell we can use the dhall library to generate always syntactically 
  correct Dhall AST. It's also much easier to keep an eye on correctness, 
  because types and pattern matching. It also forces us to deal with things
  like cyclic imports from the get go.

Things happening here:
- remove the `api` folder, removing the difference between "raw api" and "nice api"
- move defaults from `default` to `defaults` folder, as it is in `dhall-nethack`
- transition to the new syntax for `Optional` (fix #49)
- add `types.dhall` and `defaults.dhall`, so that one can now easily "pin a version"
  by just importing these two records at a specific commit/tag. They also make it really
  easy to access objects, e.g.
  `let types = https://raw.githubusercontent... sha256:... in types.Deployment`
- also add typesUnion.dhall (fix #54), so one is able to send to Kubernetes different
  objects in the same stream. This is also documented in the README
- defaults are resolved recursively (fix #46): if there's an import of a "nullable" record,
  then it's not marked as Optional, making merging objects much easier
- default objects are not lambdas anymore, and instead they just don't include the required
  fields (that is, the ones that are not nullable records), as suggested in dhall-lang/dhall-lang#382
- for objects that are simple types we used to generate a simple lambda
  `\(a : Text) -> a` as a default, now we just don't generate a default (e.g. see
  `io.k8s.apimachinery.pkg.apis.meta.v1.Time`)
- autoformat all generated Dhall code
- remove cyclic imports (fix #47)
- update to dhall-1.22 and dhall-json-1.2.8
2019-05-01 19:13:18 +03:00
Fabrizio Ferrai
f860c4e2a4
Upgrade to Kubernetes 0.13.4 (#53) 2019-03-25 12:32:48 +02:00
Jan van Brügge
4a904b4688 Do not require apiVersion for ObjectFieldSelector (#40) 2018-12-03 10:37:49 +01:00
Fabrizio Ferrai
4fec2167a8
Support 'format' key from the swagger schema (#28)
Fix #12 by introducing a `< Int : Natural | String : Text >` Union for the "int-or-string" format key.
2018-08-06 17:13:33 +02:00
Thomas Scholtes
1dafd97c09 Improve convert code and fix alias issues (#25)
We improve the convert code by rewriting the `get_typ`. It is now more
general and properly recurses on records and lists. This also surfaced a
bug where definition aliases did not generate correct code.
2018-07-14 11:10:37 +03:00
Fabrizio Ferrai
bc09fbe1b4
Fix $ in record labels: start emitting quoted ones (#22) 2018-07-11 18:35:11 +02:00
Fabrizio Ferrai
6acb5b3e18 Update to Dhall 1.14
Switch Integer to Natural
2018-07-08 20:47:09 +03:00
Thomas Scholtes
6f4b1b32fd
Regenerate code from OpenAPI spec 2018-07-08 11:28:21 +02:00
Fabrizio Ferrai
03c99940c9 Regenerate defaults and types 2018-06-01 11:36:53 +02:00
Fabrizio Ferrai
ae66b56518 Fix record types and empty records formatting 2018-05-27 19:55:47 +02:00
Fabrizio Ferrai
01d8ec40e3 Start generating default values for all models 2018-05-27 19:55:47 +02:00