vmware-archive / kubecfg

A tool for managing complex enterprise Kubernetes environments as code.
Apache License 2.0
728 stars 62 forks source link

Cuelang Support #276

Open gravypod opened 4 years ago

gravypod commented 4 years ago

CUE is another meta-configuration language that attacks the same problem set as Jsonnet. It provides a different set of abstractions that may make it more suitable for some deployments and team workflows. Would it be possible for kubecfg to implement support for CUE?

jjo commented 4 years ago

joining the crowd here for that xmas gift from @mkmik :clown_face: !

mkmik commented 4 years ago

I'm also very excited about cuelang. I wonder if kubecfg is needed in that world though. Doesn't cue already support integrating with kubectl? Kubectl now also supports diffs.

jjo commented 4 years ago

Doesn't cue already support integrating with kubectl? Kubectl now also supports diffs.

it does via its command -> tasks constructs (i.e. supports running any CLI really), but still wouldn't match kubecfg from interacting with the API itself iiuc, also kubecfg rather "liberal" multi-object structs handling (either single obj, lists, maps)

gravypod commented 4 years ago

@mkmik I'm investigating kubecfg for these two, very impressive, features:

  1. Best-effort sorts objects before updating, so that dependencies are pushed to the server before objects that refer to them.
  2. Optional "garbage collection" of objects removed from config (see --gc-tag).

I'm not as familiar as I should be with kubectl and it's roadmap but from an outsider's perspective (someone who is relatively new to kubernetes tooling) it seems like kubecfg is much further along.