Skip to content
Snippets Groups Projects
  1. Oct 03, 2017
    • Jessica Yuen's avatar
      Construct base components object · c97498df
      Jessica Yuen authored
      In order to support environment heirarchy, we need to be able to
      reference all components. This commit will implement component imports
      as k-v pairs ex: foo: "import/foo.jsonnet" as a Jsonnet object. This
      jsonnet object will then be assigned as an ExtCode so that it can be
      referenced by a base.libsonnet file which environments can build /
      override upon.
      c97498df
  2. Sep 27, 2017
  3. Sep 26, 2017
    • Alex Clemmer's avatar
      Merge pull request #160 from jessicayuen/env-set-fix · fa6d1a69
      Alex Clemmer authored
      Fix 'env set' where --name flag is not specified
      fa6d1a69
    • 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
  4. Sep 22, 2017
  5. Sep 21, 2017
  6. Sep 20, 2017
  7. Sep 19, 2017
  8. 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
  9. 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
  10. 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
  11. Sep 11, 2017