Skip to content
Snippets Groups Projects
  1. Sep 26, 2017
    • Jessica Yuen's avatar
      Fix 'env set' where --name flag is not specified · e5e1a1c1
      Jessica Yuen authored
      There is a bug where if --name is not passed during env set, an error is
      thrown due to failed validation checking on an empty name. This commit
      fixes this bug.
      e5e1a1c1
    • Alex Clemmer's avatar
      Merge pull request #157 from hausdorff/svc-depl-proto · 73e75ee2
      Alex Clemmer authored
      Add combination deployment/service system prototype
      73e75ee2
    • Alex Clemmer's avatar
      Merge pull request #154 from hausdorff/proto-preview · 0762fdd0
      Alex Clemmer authored
      Implement 'prototype preview'
      0762fdd0
    • Alex Clemmer's avatar
      f1fba0a1
    • Alex Clemmer's avatar
      Implement 'prototype preview' · 64f78b42
      Alex Clemmer authored
      Currently the command 'prototype use' expands a prototype and prints to
      stdout. This is useful, but most of the time, users want to simply dump
      the result in 'components/'
      
      This command implements this print-to-stdout behavior in a new command,
      'prototype-preview', and reimplements 'prototype use' to drop the
      expanded prototype into 'components/'.
      
      The new form of this command is:
      
        ksonnet prototype use <prototype-name> <component-name> [type] [flags]
      
      So, for example, a command like:
      
        ksonnet prototype use deployment nginx-depl [...]
      
      would expand the 'deployment' prototype, and place it in
      'components/nginx-depl.jsonnet' (since Jsonnet is the default template
      expansion). Alternatively, something like this:
      
        ksonnet prototype use deployment nginx-depl yaml [...]
      
      would expand the prototype and place it in 'components/nginx-depl.yaml'
      (assuming that there is a YAML version of this template.
      64f78b42
    • Alex Clemmer's avatar
      Harden `metadata.isValidName` · 4c3488eb
      Alex Clemmer authored
      Currently `metadata.isValidName` will admit names that should be invalid
      (e.g., names with spaces, leading '/' characters) and not admit names
      that should be valid (e.g., names with '.' characters inside).
      
      This commit moves this function into `metadata/interface.go` and hardens
      it against these constraints.
      4c3488eb
  2. Sep 22, 2017
  3. Sep 21, 2017
  4. Sep 20, 2017
  5. Sep 19, 2017
  6. Sep 18, 2017
    • Alex Clemmer's avatar
      Set default permissions in `metadata.Manager` to 0644 · d6b691cc
      Alex Clemmer authored
      Currently all files and folders created with the `metadata.Manager`
      (which is the core FS management subsystem) are created with permissions
      0777, i.e., everyone has all permissions.
      
      This commit transistions us to a more locked down permissions set, 0644,
      which allows the user to do everything except execute, and everyone else
      to only read.
      
      Since we don't store any app code that needs to be executed, this should
      be suitable for everything.
      
      Fixes #136.
      d6b691cc
    • Alex Clemmer's avatar
      Merge pull request #131 from jessicayuen/env-subcommands · 1953d8bf
      Alex Clemmer authored
      Introduce env subcommands 'env add', 'env rm', 'env set' & 'env list'
      1953d8bf
    • Jessica Yuen's avatar
      Add subcommand 'env set' · f86667a6
      Jessica Yuen authored
      'env set <name>' sets environment fields such as the name, and cluster
      URI. It currently accepts the flags '--name' and '--uri'. Changing the
      name of an environment will also update the directory structure in
      'environments'.
      f86667a6
  7. Sep 15, 2017
    • Jessica Yuen's avatar
      Add subcommand 'env rm' · 530f5777
      Jessica Yuen authored
      'env rm <env-name>' deletes an environment within a ksonnet project.
      This is the same as removing the <env-name> environment directory and
      all files contained.  Empty parent directories will also be removed.
      530f5777
    • Jessica Yuen's avatar
      Add subcommand 'env list' · a169d973
      Jessica Yuen authored
      'env list' will list all environments within a Ksonnet project. Each
      environment will be pretty-printed with it's name and cluster URI
      location.
      a169d973
  8. Sep 13, 2017
    • Jessica Yuen's avatar
      Add subcommand 'env add' · 56777310
      Jessica Yuen authored
      'env add <env-name> <env-uri>' will create a new environment within a
      ksonnet project, by generating a new directory, 'env-name', within the
      'envs' directory. Each environment will contain environment-specfic
      files. Notably, a new environment-specific file is 'spec.json'.
      'spec.json' currently only contains the 'env-uri' of the Kubernetes
      cluster located at the added environment.
      
      Below is an example directory structure for the environment
      'us-west/staging':
      
      app-name/
        .gitignore           Default .gitignore; can customize VCS
        .ksonnet/            Metadata for ksonnet
        environments/        Env specs (defaults: dev, test, prod)
          default/           [Default generated environment.]
          us-west/           [Example of user-generated env]
            staging/
              k.libsonnet
              k8s.libsonnet
              swagger.json
              spec.json      [This will contain the uri of the environment]
        components/          Top-level Kubernetes objects defining application
        lib/                 user-written .libsonnet files
        vendor/              mixin libraries, prototypes
      56777310
  9. Sep 11, 2017
    • Alex Clemmer's avatar
      Merge pull request #122 from hausdorff/fix-116 · 70af2cd3
      Alex Clemmer authored
      Add types for prototype parameters
      70af2cd3
    • Alex Clemmer's avatar
      Merge pull request #121 from hausdorff/fix-113 · 394dea5d
      Alex Clemmer authored
      Fix #113
      394dea5d
    • Alex Clemmer's avatar
      Add pretty-printing for `prototype search` results · fd0251bc
      Alex Clemmer authored
      When a user runs `prototype search`, we'd like for the output to include
      the name, description, and available template types, and we'd like that
      output to be padded for readability. For example, if the user runs
      `prototype search io.`, we'd like to output something like this:
      
         io.whatever.pkg.foo    Foo's main template    [jsonnet, yaml]
         io.whatever.pkg.foobar Foobar's main template [jsonnet,   yaml, json]
      
      This commit will introduce this style of padded output to the `prototype
      search` subcommand.
      fd0251bc
    • Alex Clemmer's avatar
      Add types for prototype params and templates · 358e6c25
      Alex Clemmer authored
      This commit will fix #116 by introducing two new constructs to the
      prototype specification schema:
      
      1. Mandatory types for prototype parameters. This lets us accept bare
         words on the command line, and then "do the right thing" when
         emitting JSON or Jsonnet.
      
         For example, say a template produces a `core.v1.Service` that exposes
         a port with a `--targetPort` flag. When the user passes a number
         (e.g., `80`) in, we should _not_ put quote marks around it, since we
         want to expose port `80`. When the user passes a string (e.g.,
         `"nginxPort"`), we _should_ put quote marks around it, to denote that
         we're exposing the port with that name.
      
         In order to do this, we need to know they "type" of the parameter (in
         this case, `NumberOrString`).
      
      2. Mandatory template types. A template can have a JSON, YAML, or
         Jsonent flavor, and we default to using Jsonnet. This is useful
         mostly to make type parameters less error-prone (since one set of
         parameters corresponds to one set of templates), but it also
         significantly de-bloats the output of commands like `search`, since
         one fully-qualified name can correspond to multiple flavors of the
         same template.
      358e6c25
    • Alex Clemmer's avatar
      Emit `k.libsonnet` during `init` subcommand · 98c7428f
      Alex Clemmer authored
      This commit fixes #113, causing us to emit `k.libsonnet` (a collection
      of extensions to the k8s API) by updating the dependency on
      `ksonnet-lib/ksonnet-gen` and exercising the new signature for
      `ksonnet.Emit`, which handles this automatically.
      
      We update the `vendor/` directory and the code that depends on it in the
      same commit so that we don't break bisect.
      98c7428f
  10. Sep 09, 2017