Skip to content
Snippets Groups Projects
  1. Jan 26, 2018
  2. Jan 25, 2018
  3. Dec 25, 2017
  4. Dec 13, 2017
  5. Nov 15, 2017
    • Jessica Yuen's avatar
      Normalize environment server URL · c188bc9b
      Jessica Yuen authored
      As part of the environments feature, we want to be able to deploy to a
      specific cluster given the environment's URI. We cross-check against
      kubecfg for this URI's location. For fail-safe comparison, we probably
      want to normalize these URIs.
      c188bc9b
  6. Nov 13, 2017
    • Jessica Yuen's avatar
      Fix bug for duplicate environment params · 911fab4f
      Jessica Yuen authored
      A bug existed where if `param set` was called for the same param twice,
      a duplicate entry was created for the component. This only occured where
      the component name contained a special character.
      911fab4f
  7. Nov 10, 2017
    • Alex Clemmer's avatar
      :nail_care: Add row-padding string pretty printer · 9c2d0a2d
      Alex Clemmer authored
      Historically, every time we've needed to write out something tabular,
      we've hand-rolled an ad hoc padded row writer. Yes, in each case. Such
      is #startuplife.
      
      The third time we did this we wrote this with bugs, and so now we are
      rewriting it in a general, tested function, and transitioning all places
      where we call this to use this function.
      9c2d0a2d
  8. Nov 08, 2017
  9. Oct 26, 2017
    • Alex Clemmer's avatar
      c3fcf414
    • Jessica Yuen's avatar
      Support `diff` between two environments · 2687c6d8
      Jessica Yuen authored
      This change enables the user to diff between two environments that are
      either local or remote.
      
      i.e.,
      
      `kubecfg diff local:dev local:prod` will diff between the expanded
      templates for each environment on disk.
      
      `kubecfg diff remote:dev remote:prod` will diff between two remote
      environment clusters. It does this by first expanding the component
      templates of each environment. Then, the live objects are fetched from
      each of the clusters and the diff is performed against the live objects.
      
      `kubecfg diff local:dev remote:prod` is also an option. This will diff
      between the expanded templates for 'dev' on disk and the live objects
      on 'prod's server.
      2687c6d8
  10. Aug 09, 2017
  11. Aug 08, 2017
  12. Aug 02, 2017
  13. Jul 27, 2017
    • Angus Lees's avatar
      Add manifestJson and manifestYaml functions · 1f85d5dd
      Angus Lees authored
      jsonnet's `std.toString()` returns "compact" JSON.  Sometimes this is
      not appropriate, particularly when generating large output that might
      need to be viewed/debugged by a human.
      
      This change implements manifestYaml and manifestJson functions, which
      generate YAML and "pretty" JSON respectively.
      
      A slight implementation wrinkle is that libjsonnet currently only
      supports passing primitive (scalar) types to native functions, so
      these arguments need to be JSON-serialised/unserialised across the
      native function call boundary.
  14. Jul 17, 2017
  15. Jul 06, 2017
  16. Jun 30, 2017
  17. Jun 29, 2017
  18. Jun 28, 2017
  19. Jun 23, 2017
    • Angus Lees's avatar
      Add new `resolveImage` native function · 54405b18
      Angus Lees authored
      Add a new native function that resolves docker image names into more
      specific forms.  In particular, it can look up a docker registry and
      convert image:tag to image@digest at jsonnet-eval time.
      
      Limitations: Does not currently support private docker
      registries (that require authentication).
      
      Controlled via two new command line flags:
      - `--resolve-images` Change implementation of resolveImage native
        function. One of: noop, registry (default "noop")
      - `--resolve-images-error` Action when resolveImage fails. One of
        ignore,warn,error (default "warn")
      
      Note in particular that the defaults will *not* do remote registry
      lookups, and will only add an explicit ":latest" tag where no tag was
      given.
      
      Fixes #13
  20. Jun 22, 2017
  21. Jun 09, 2017
    • Angus Lees's avatar
      Implement diff subcommand · 01e5f51b
      Angus Lees authored
      Uses github.com/yudai/gojsondiff for the heavy lifting.
      01e5f51b
    • Angus Lees's avatar
      Implement delete subcommand · bdefc0bf
      Angus Lees authored
      This removes all objects listed in config files (and dependents) -
      effectively reversing an `update --create`.
      
      Intended for short-lived "try this out; now clean up" workflows.
      
      Fixes #14
      bdefc0bf
  22. May 29, 2017
  23. May 23, 2017
    • Angus Lees's avatar
      Accept a wider range of jsonnet result structures · e1285841
      Angus Lees authored
      There is some variation in jsonnet "result" conventions.  This change
      assumes the top level is a JSON object, and then walks down looking
      for objects with `apiVersion` & `kind` fields.
      
      While walking down, the current code will expand JSON arrays, and
      object values.
      
      In particular, this should correctly accept:
      - single-value JSON files
      - arrays (jsonnet --yaml-stream)
      - "filename->object" objects (jsonnet --multi)
      
      (Note that any v1.Lists encountered are still expanded in a
      second-pass, as before)
      e1285841
  24. May 19, 2017
    • Angus Lees's avatar
      Attempt to topologically sort resources before updating · fad478f6
      Angus Lees authored
      The goal is to make a best-effort attempt at reducing the number of
      "crash-restart" loops required to bring up a group of interdependent
      resources.
      
      The current implementation is very simple and just sorts into 3 tiers:
      - Namespace, ThirdPartyResource, StorageClass
      - everything else
      - Pods or similar (Pod/Job/Deployment/DaemonSet/StatefulSet)
      fad478f6
  25. May 18, 2017
    • Angus Lees's avatar
      Implement "update" subcommand · d0327629
      Angus Lees authored
      - Support the standard client-go/kubectl flags
      - Switch object types to use client-go rather than apimachinery
      - Implement update subcommand
      d0327629
  26. May 16, 2017
    • Angus Lees's avatar
      gofmt · 4ab98f60
      Angus Lees authored
      4ab98f60
    • Angus Lees's avatar
      Add ability to read json/yaml/jsonnet input files · 9ddea438
      Angus Lees authored
      File format is recognised via simple file extension check.
      
      Any "List" objects found will be expanded into their constituent
      items, so single-element formats like json and jsonnet can use a
      v1.List to capture multiple resource objects.
      9ddea438